我有两张父母和小孩的桌子。 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条记录重复。
答案 0 :(得分:1)
一种方法是使用IN
或EXISTS
:
SELECT c.*
FROM child c
WHERE c.parent_unique_id IN (SELECT p.unique_id FROM parent p);
当然,你可以在你的查询上打一下SELECT DISTINCT
。但是,这需要和不必要的处理。