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*'));

我有两张桌子。MålsmanBarn。这是一张孩子和父母合二为一的桌子。这两个都有列;Förnamn,EfternamnPostnummer. 现在有些孩子有同一个父母,有些父母也有两个孩子。这导致两个孩子具有相同的“ postnummer”,两个父母具有相同的“ postnummer”。因此,当我执行此查询时,我的结果会返回重复项。

这是我制作这个数据库的方式有问题,还是我可以更改我的查询以不重复。我已经尝试过,Distinct但似乎没有用,而且我听说在某个地方您可以使用 order by 或 group by。不明白。

因此,任何建议将不胜感激。:)

我从运行中得到的输出是

结果图片

所以我不希望同一个孩子多次出现

4

1 回答 1

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
于 2013-03-10T18:14:05.290 回答