mysql - 对整个表运行 sql 查询
问题描述
我正在尝试获取员工列表(在 srat 中)以及他们的survey_results(在 sr 中)是否合格。kt 是所有可能活动的列表,有合格或不合格。
SELECT srat.employee_email,srat.taxyear, sr.item, kt.qualified, kt.unqualified
FROM survey_results_activities_temp srat, survey_results sr, key_temp kt
WHERE sr.user_email=srat.employee_email AND sr.taxyear=srat.taxyear
AND sr.item_type='AC' AND sr.item=kt.activity
这运行良好,并从 sr 表返回 4 行,并在其上附加了合格或不合格。但我希望它运行在 srat 中的所有employee_email 中。现在它只运行第一个。我究竟做错了什么?顺便说一句,我正在使用 mySQL。
解决方案
切勿在FROM
子句中使用逗号。 始终使用正确、明确、标准、可读的JOIN
语法。
根据您的描述,您需要LEFT JOIN
:
SELECT srat.employee_email, srat.taxyear, sr.item, kt.qualified, kt.unqualified
FROM survey_results_activities_temp srat LEFT JOIN
survey_results sr
ON sr.user_email = srat.employee_email AND
sr.taxyear = srat.taxyear AND
sr.item_type = 'AC' LEFT JOIN
key_temp kt
ON sr.item = kt.activity
推荐阅读
- ios - 从 Apple 登录注销
- c++ - 我的井字游戏理论上是个大问题,但对我来说一切似乎都很好
- javascript - 使用 async/await 未解决 Promise
- javascript - 如何以编程方式提供和使用上下文?
- auth0 - 如何处理 auth0 中失败的静默身份验证错误
- excel - 替换除第 6 行以外的重音字符
- sql - Sqlite 移动平均每分钟
- graphql - 如何删除 Graphene Django 突变查询(中继)中的嵌套输入对象?
- javascript - 如何在移动设备的 JavaScript 中查看光标在哪个 div 上?
- vue.js - 在 vue 中仅在特定组件中使用 scss 而不是其他组件