假设我有一个表,该表的功能专门用于根据OOP链接其他两个表。
假设我有两个表:一个用于人的名字,另一个用于电话号码:
Table 1:
id person's name
1 John
2 Smith
Table 2:
id Phone number
5 23424224
6 23424242
然后,我有了第三个表,该表链接了该人及其各自的电话号码:
Table 3:
id person-id phone-number-id
1 1 5
2 2 6
因此,John的电话号码为23424224,Smith的电话号码为23424242。
我想运行一个SQL查询以从表1中获取所有电话号码以(234)开头的人。
我将如何在此表结构中链接选择查询...我将运行什么查询?
最佳答案
首先,创建该表的唯一原因是如果您具有多对多关系。
一个人可以有很多电话号码,但一个电话真的可以有很多人吗?
如果是这样,那么您的架构将实现该要求,但对我来说似乎有点过分设计了:-)
其次,这是一个相当简单的联接。您要做的是首先选择有问题的电话号码,然后从第三张表中选择人员ID,然后从第一张表中选择姓名。就像是:
选择t1.name作为名称,从table1 t1,table2 t2,table3 t3中选择t2.number,其中t2.number如'234%'和t3.personid = t1.id和t3.phoneid = t2.id;
如果需要外部连接语义(包括某些带有NULL的字段),也可以将“blah.id = blah.id”重写为连接。
关于mysql - 如何在由另一个表链接的两个表上执行MySQL选择查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3324265/