1

これを何時間もグーグルしてきました。しかし、私のSQLクエリを機能させる方法を見つけることができません。

SELECT barn.förnamn+' '+barn.efternamn AS Child, målsman.förnamn+' '+målsman.efternamn AS Parent, Målsman.postnummer
FROM barn INNER JOIN Målsman ON barn.Postnummer = Målsman.Postnummer
WHERE (((Målsman.postnummer) Like '*23*'));

2つのテーブルがあります。MålsmanおよびBarn。これは、子供が1人、親が1人のテーブルです。これらの両方に列があります。FörnamnEfternamnおよびPostnummer。現在、これらの子供たちの中には同じ親を持っている人もいれば、2人の子供を持っている人もいます。これにより、同じ「」を持つ2人の子供と、同じ「postnummer」を持つ2人の親が作成されpostnummerます。したがって、このクエリを実行すると、結果が重複して返されます。

このデータベースの作成方法に問題がありますか、それとも重複しないようにクエリを変更できますか?試しましDistinctたが、うまくいかないようです。どこかで、orderbyまたはgroupbyを使用できると聞いています。それを理解しないでください。

だからどんな提案もいただければ幸いです。:)

これを実行して得られる出力は次のとおりです。

結果の写真

だから私は同じ子供が何度も現れることを望まない

4

1 に答える 1

0

質問は完全には明確ではありません。ただし、1人の親だけを特定の子に関連付けるには、次のようなことを試してください。

SELECT Child, MIN(Parent) AS Parent, postnummer FROM (
SELECT barn.förnamn+' '+barn.efternamn AS Child, målsman.förnamn+' '+målsman.efternamn AS Parent, Målsman.postnummer as postnummer
FROM barn INNER JOIN Målsman ON barn.Postnummer = Målsman.Postnummer
WHERE (((Målsman.postnummer) Like '*23*'))
) a
GROUP BY child, postnummer
于 2013-03-10T18:14:05.290 に答える