现在谷歌搜索了几个小时。但找不到让我的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*'));
我有两张桌子。 Målsman
和Barn
。这是一个包含儿童和父母在一起的桌子。这两个都有列; Förnamn
,Efternamn
和Postnummer
。
现在其中一些孩子有同一个父母,有些父母也有两个孩子。这导致两个孩子具有相同的“postnummer
”,两个父母具有相同的“postnummer
”。因此,当我执行此查询时,我的结果会返回重复项。
我制作此数据库的方式是一个问题,还是我可以将查询更改为不重复。我尝试了Distinct
,但似乎没有用,我听说过你可以使用order by或group by。不明白。
所以任何建议都会受到赞赏。 :)
我从运行它得到的输出是
所以我不希望同一个孩子多次出现
答案 0 :(得分:0)
问题并不完全清楚。但是,为了将一个父母与特定的孩子联系起来,您可以尝试以下方式:
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