LEFT JOIN 表 mysql,未正确获取数据
LEFT JOIN tables mysql, not getting the data correctly
我不知道这是我查询的问题,还是我完全使用了错误的东西。
基本上我有2个table,submission_data和代码。代码可以在系统中进行管理,并在提交页面中针对每个代码提交数字。但是,如果在添加一些提交后添加新代码,我用来获取特定提交的所有数据的查询不会显示添加的任何新代码,因为它不存在于 submission_data table.
我的查询如下:
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 值,因为没有条目。
我是不是以错误的方式进行了查询(首先从错误的 table 中选择),还是与我的 JOINS 有关?我尝试了不同的组合并不断得到相同的结果
这个查询应该有效:
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
中的每一行,它会找到 submission_data
中也具有 submission_id = 1
的所有匹配项(按 code.ID
)。如果在 submission_data
中没有找到这样的行,它 returns NULL
for sd.code_value
.
我不知道这是我查询的问题,还是我完全使用了错误的东西。
基本上我有2个table,submission_data和代码。代码可以在系统中进行管理,并在提交页面中针对每个代码提交数字。但是,如果在添加一些提交后添加新代码,我用来获取特定提交的所有数据的查询不会显示添加的任何新代码,因为它不存在于 submission_data table.
我的查询如下:
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 值,因为没有条目。
我是不是以错误的方式进行了查询(首先从错误的 table 中选择),还是与我的 JOINS 有关?我尝试了不同的组合并不断得到相同的结果
这个查询应该有效:
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
中的每一行,它会找到 submission_data
中也具有 submission_id = 1
的所有匹配项(按 code.ID
)。如果在 submission_data
中没有找到这样的行,它 returns NULL
for sd.code_value
.