选择加入的位置

时间:2013-09-12 17:25:23

标签: mysql where-clause

我想从我已经知道的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的孩子?

请求帮助

3 个答案:

答案 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)

我希望这会有所帮助。