親と子の2つのテーブルがあります。 Parentにはunique_idというフィールドがあり、childにはparent_unique_idというフィールドがあり、それは子テーブルの外部キーです。親テーブルには同じunique_idのレコードが4つあり、子テーブルには同じunique_idのレコードが5つあります。MySql親キーが複数の値を持つ子テーブルのレコードのみを取得する
レコードを取得するためにそれらを結合すると、子テーブルの各レコードが4回繰り返されて合計20レコードが取得されます。
私が使用しているクエリが
SELECT c.* FROM child c JOIN parent p ON c.parent_unique_id = p.unique_id
である私は、LEFTは同様にJOINを試みたが、私はまだ繰り返して20件のレコードを取得しています。もちろん
SELECT c.*
FROM child c
WHERE c.parent_unique_id IN (SELECT p.unique_id FROM parent p);
、あなたは自分のクエリにSELECT DISTINCT
を平手打ちできます
'Parent'でユニークな' unique_id'はありませんか?それは非常に間違った命名規則のようです。 –
それは私がそれを構築し始めた間に起こった技術的なミスでした。今、私はそのunique_idを別のテーブルに分けるために取り組んでいます。通知をありがとう – spod