我想从我已经知道的ids获得结果。这是我的尝试(伪):
SELECT *
FROM main
LEFT JOIN child
WHERE main.id IN("1,2,3,4")
ON main.id = child.main_id
如何通过来自WHERE IN的已知ID获取来自main的孩子?
请求帮助
答案 0 :(得分:1)
请试试这个,我认为你的语法错误。
SELECT * FROM main LEFT JOIN child ON main.id = child.main_id WHERE main.id IN(1,2,3,4)
ON
应该在JOIN
表和IN
条件没有"
缠绕它之后立即生效。
答案 1 :(得分:0)
我认为你想要得到的东西可以通过两个选项来达到:
1
SELECT * FROM main LEFT JOIN child ON main.id = child.main_id WHERE main.id IN(1,2,3,4);
删除引文。
或
2
SELECT * FROM main JOIN child ON main.id = child.main_id AND main.id IN(1,2,3,4);
答案 2 :(得分:0)
第一个问题是你在IN
clausule中放入一个String,而不是一个项目列表。
第二个问题是ON
clausule必须在JOIN
clausule之后,我猜。你可以尝试两种不同的方式(我认为你有点混合它们!):
SELECT * FROM main m, child c
WHERE m.id IN(1,2,3,4) AND c.main_id = m.id
OR
SELECT * FROM main m LEFT JOIN child c ON m.id = c.main_id
WHERE main.id IN(1,2,3,4)
我希望这会有所帮助。