我正在尝试从下一个语句创建一个输出数组:
我有2张桌子。在每个表中都有“material_code”,它起主要作用。我想从 table1 中选择 material_code ,其中它等于来自 table2 的 material_code 并将它们连接到 > status (来自table2)等于 0 。
这是我到目前为止所得到的。
SELECT material_code FROM table1
LEFT JOIN table2 ON material_code WHERE status IS 0
解决方案:
SELECT material_code FROM table1
LEFT JOIN table2 ON table1.material_code = table2.material_code WHERE status = 0
谢谢大家。
答案 0 :(得分:1)
你应该尝试这个:
SELECT
material_code
FROM table1
LEFT JOIN table2
ON table1.material_code = table2.material_code
WHERE status = 0
答案 1 :(得分:1)
听起来像是想要INNER JOIN
SELECT material_code FROM table1
INNER JOIN table2 USING (material_code) WHERE status = 0
如果使用LEFT JOIN
,您将获得仅存在于table1而不存在于table2中的记录。如果两个表中的列名相同(至少在MySQL中),您还希望使用USING
而不是ON
。
答案 2 :(得分:0)
WHERE status IS 0
应该是
WHERE status = 0
仅当null
时必须IS NULL
。
你也错过了加入条件(ON table1.material_code = table2.material_code
)
答案 3 :(得分:0)
如果在bot表中有一个字段'status',您可以在字段名称前使用显式表名,仅在table1的'status'上添加条件,如:
WHERE table2.status = 0
答案 4 :(得分:0)
试试这个SQL代码。 INNER JOIN
在您的情况下更好。
SELECT tb1.material_code
FROM table1 as tb1
INNER JOIN table2 as tb2 ON tb1.material_code=tb2.material_code
WHERE tb2.status = 0