我下载了一个包含邮政编码和议会的文件,在这里我必须检查是否所有的议会都与它的理事会号码有一对一的关系(因为这样我就可以将它存储在多个表中以节省空间)。
这张桌子现在看起来就像
councilnumber, int(3)
council, varchar(25)
zip, int(5)我怎么才能确认它是否有一对一的关系?
发布于 2015-03-26 11:40:15
SELECT MIN(councilnumber), MAX(councilnumber), zip FROM tble group by councilnumber, council, zip HAVING MIN(councilnumber) <> MAX(councilnumber)这会显示出糟糕的记录。如果需要丢弃它们,请使用:
SELECT MIN(councilnumber), MAX(councilnumber), zip FROM tble group by councilnumber, council, zip HAVING MIN(councilnumber) = MAX(councilnumber)顺便说一句,我不确定1比1是正确的关系。县里有很多拉链在我脑子里。实际上,有些拉链可以属于两个县(至少在美国)。
在这种情况下,我建议您使用另一个具有自己ID的ZIP和县的链接表,然后您将能够从该ID中获得ZIP和县,它将支持多到多的关系。
发布于 2015-03-26 11:59:02
SELECT councilnumber, count(council) as `count` FROM Councils group by councilnumber order by `count` desc和
SELECT council, count(councilumber) as `count` FROM Councils group by council order by `count` desc如果第一行的count大于1,则表示理事会数目或理事会有多个值。
https://stackoverflow.com/questions/29277444
复制相似问题