MySql仅从子表中获取记录,其中父键具有多个值

时间:2016-05-09 11:19:30

标签: mysql join

我有两张父母和小孩的桌子。 Parent有一个名为unique_id的字段,child有一个名为parent_unique_id的字段,它是子表中的外键。父表有4条相同unique_id的记录,子表有5条相同unique_id的记录。

当我加入他们获取记录时,我总共得到20条记录,每个子记录表的5条记录重复4次。

我正在使用的查询是

SELECT c.* FROM child c JOIN parent p ON c.parent_unique_id = p.unique_id

我也试过LEFT JOIN,但我仍然有20条记录重复。

1 个答案:

答案 0 :(得分:1)

一种方法是使用INEXISTS

SELECT c.*
FROM child c 
WHERE c.parent_unique_id IN (SELECT p.unique_id FROM parent p);

当然,你可以在你的查询上打一下SELECT DISTINCT。但是,这需要和不必要的处理。