gpt4 book ai didi

具有两列作为同一表的外键的SQL查询

转载 作者:行者123 更新时间:2023-12-04 01:49:04 26 4
gpt4 key购买 nike

我有两张 table

表A

    id ! name ! fk_1_table_B_1 ! fk_2_table_B_2
-------|------|----------------|--------------
1 | John | 1 | 3
2 | Paul | 2 | 1
3 | Anna | 4 | 2
4 | Alan ! 3 | 1

表B
    id | code
-------|------
1 | EN
2 | US
3 | FR
4 | IT

这个想法是获得以下查询
    id ! name ! code (fk_1_table_B_1) ! code (fk_1_table_B_2)
-------!------!-----------------------!-----------------
1 | John | EN | FR
2 | Paul | US | EN
3 | Anna | IT | US
4 | Alan ! FR | EN

如果表A只有表B的FK列,我会这样做
SELECT tableA, name, tableB.code 
FROM tableA, table B
WHERE tableA.fk_1_table_B_1 = tableB.id

如何使用表A具有两列作为B的FK?我应该在SELECT中选择什么?

谢谢

最佳答案

您应该两次连接到同一张表,并为其赋予两个不同的别名:

SELECT a.id, a.name, b1.code, b2.code
FROM tableA a
JOIN tableB b1 ON b1.id = a.fk_1_table_B_1
JOIN tableB b2 ON b2.id = a.fk_2_table_B_2

请注意,此查询如何使用ANSI联接语法来获得更好的清晰度:与其在 FROM子句中列出所有表,不如将每个别名 tableB放入其自己的 JOIN子句中。

关于具有两列作为同一表的外键的SQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26387041/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com