LEFT JOIN表mysql,没有正确获取数据

时间:2015-01-23 10:38:16

标签: mysql join

我不知道这是我的查询有问题,还是我完全使用了错误的东西。

基本上我有2个表,submission_data和代码。可以在系统中管理代码,并根据提交页面中的每个代码提交数字。但是,如果在添加一些提交后添加了新代码,我用来获取特定提交的所有数据的查询都不会显示添加的任何新代码,因为它在submission_data表中不存在。

SQLFIDDLE

我的查询如下:

SELECT c.code, sd.code_value from submission_data sd 
LEFT JOIN codes c ON c.ID = sd.code_id 
WHERE submission_id = 1

我应该在结果中看到S代码,因为没有条目,所以显然值为0。

我是否以错误的方式完成了查询(首先从错误的表中选择),还是与我的JOINS有关?我尝试了不同的组合并继续获得相同的结果

1 个答案:

答案 0 :(得分:1)

此查询应该有效:

SELECT c.code, sd.code_value 
FROM codes c
LEFT JOIN submission_data sd  ON c.ID = sd.code_id AND submission_id = 1

它从codes获取所有行。对于codes中的每一行,它会找到code.ID中同时拥有submission_data的所有匹配项(submission_id = 1})。如果在submission_data中找不到此类行,则会为NULL返回sd.code_value