kam*_*lot 5 mysql sql database select
假设我有一个表,其功能专门用于根据 OOP 链接另外两个表。
假设我有两张表:一张是人名,另一张是电话号码:
Table 1:
id person's name
1 John
2 Smith
Table 2:
id Phone number
5 23424224
6 23424242
Run Code Online (Sandbox Code Playgroud)
然后我有第三个表格,链接此人及其各自的电话号码:
Table 3:
id person-id phone-number-id
1 1 5
2 2 6
Run Code Online (Sandbox Code Playgroud)
因此,约翰的电话号码是 23424224,而史密斯的电话号码是 23424242。
我想运行一个 SQL 查询来从表 1 中获取所有电话号码以(234)开头的人。
我将如何在此表结构中链接选择查询……我将运行什么查询?
首先,创建该表的唯一原因是如果您具有多对多关系。一个人可以拥有多个电话号码,但一个电话号码真的可以拥有多个人吗?如果这是真的,那么您的模式实现了该要求,但这对我来说似乎有点过度设计:-)
其次,这是一个相当简单的连接。您要做的就是首先选择有问题的电话号码,然后从第三个表中选择人员 ID,然后从第一个表中选择姓名。就像是:
从 table1 t1、table2 t2、table3 t3 中选择 t1.name 作为名称,t2.number,其中 t2.number 如 '234%' 且 t3.personid = t1.id 且 t3.phoneid = t2.id;
如果您需要外连接语义(包括某些带有 NULL 的字段),您还可以将“blah.id = blah.id”重写为连接。