首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查一对一关系- SQL

检查一对一关系- SQL
EN

Stack Overflow用户
提问于 2015-03-26 11:38:03
回答 2查看 350关注 0票数 0

我下载了一个包含邮政编码和议会的文件,在这里我必须检查是否所有的议会都与它的理事会号码有一对一的关系(因为这样我就可以将它存储在多个表中以节省空间)。

这张桌子现在看起来就像

代码语言:javascript
运行
复制
councilnumber, int(3)
council, varchar(25)
zip, int(5)

我怎么才能确认它是否有一对一的关系?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-26 11:40:15

代码语言:javascript
运行
复制
SELECT MIN(councilnumber), MAX(councilnumber), zip FROM tble group by councilnumber, council, zip HAVING MIN(councilnumber) <> MAX(councilnumber)

这会显示出糟糕的记录。如果需要丢弃它们,请使用:

代码语言:javascript
运行
复制
SELECT MIN(councilnumber), MAX(councilnumber), zip FROM tble group by councilnumber, council, zip HAVING MIN(councilnumber) = MAX(councilnumber)

顺便说一句,我不确定1比1是正确的关系。县里有很多拉链在我脑子里。实际上,有些拉链可以属于两个县(至少在美国)。

在这种情况下,我建议您使用另一个具有自己ID的ZIP和县的链接表,然后您将能够从该ID中获得ZIP和县,它将支持多到多的关系。

票数 1
EN

Stack Overflow用户

发布于 2015-03-26 11:59:02

代码语言:javascript
运行
复制
SELECT councilnumber, count(council) as `count` FROM Councils group by councilnumber order by `count` desc

代码语言:javascript
运行
复制
SELECT council, count(councilumber) as `count` FROM Councils group by council order by `count` desc

如果第一行的count大于1,则表示理事会数目或理事会有多个值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29277444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档