0

我想从我已经知道的 id 中获得结果。这是我的尝试(伪):

SELECT * 
FROM main 
LEFT JOIN child 
WHERE main.id IN("1,2,3,4") 
ON main.id = child.main_id

如何通过 WHERE IN 的已知 id 从 main 获取孩子?

谢谢帮助

4

3 回答 3

1

请试试这个,我认为你有错误的语法来满足你的需要。

SELECT * FROM main LEFT JOIN child ON main.id = child.main_id WHERE main.id IN(1,2,3,4)

ON应该在JOIN表格和IN条件之后都没有"环绕它。

于 2013-09-12T17:32:25.513 回答
0

第一个问题是您将字符串放在IN分句中,而不是项目列表。

第二个问题是ON分句必须在JOIN分句之后,我猜。你可以尝试两种不同的方式(我认为你有点混合它们!):

SELECT * FROM main m, child c 
    WHERE m.id IN(1,2,3,4) AND c.main_id = m.id

或者

SELECT * FROM main m LEFT JOIN child c ON m.id = c.main_id 
    WHERE main.id IN(1,2,3,4)

我希望这有帮助。

于 2013-09-12T17:40:51.350 回答
0

我认为你想要得到的可以通过 2 个选项来实现:

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);
于 2013-09-12T17:33:41.600 回答