yas*_*sar 2 mysql join foreign-key
这是我的问题的简化版本。我有这些表:
id - 姓名 - 姓氏 - 父亲的名字 - 母亲的名字
id - 名称
id - 姓氏
我想查询主表,但我想从其他表中获取姓名、父亲姓名和母亲姓名的 ID。我想要类似的东西;
SELECT
'id from names table that matches record name'
, 'id from surnames table that matches record surname'
, 'id from names table that matches record fathers name'
, 'id from names table that matches record mothers name'
FROM master_table
Run Code Online (Sandbox Code Playgroud)
我的问题是我不知道如何多次加入同一个表。
您可以通过在 FROM 语句中为表添加别名来“多次加入同一个表”,例如 SELECT xyz FROM names AS n1(其中 n1 是表 [names] 的别名)。您可以通过对同一个表使用不同的别名,根据需要多次引用同一个表,它将被视为一组“不同”的数据。
然后,您需要在各种别名之间加入以获得所需的条件,例如“与记录姓氏匹配的姓氏”。
正如上面的评论者所说,结构不是很清楚,但你最终会得到类似的东西:
SELECT name, s1.surname, s2.surname from names AS n1
JOIN surnames AS s1 ON n1.mothersname = s1.surname
JOIN surnames AS s2 ON n1.fathersname = s2.surname
Run Code Online (Sandbox Code Playgroud)
我确定连接不完全是这样,因为您似乎有姓名和姓氏的“中间”表(这本身可能是一个设计问题)但上面应该说明如何在一个表中多次使用同一个表询问。
| 归档时间: |
|
| 查看次数: |
10208 次 |
| 最近记录: |