gpt4 book ai didi

具有两个键表的四个表的Mysql JOIN

转载 作者:可可西里 更新时间:2023-11-01 08:56:45 24 4
gpt4 key购买 nike

我不愿意承认,当涉及到更复杂的查询时,我对 MySQL 的了解不足。基本上我有四个表,其中两个包含我要返回的数据,另外两个是链接数据的关系表。 Table A 的存在只是为了为 Table D.aID 提供填充符。

+--------+ +--------+ +--------+ +-----------+ +-----------+
|Table A | |Table B | |Table C | | Table D | | Table E |
+---+----+ +---+----+ +---+----+ +---+---+---+ +---+---+---+
|aID|name| |bID|name| |cID|name| |dID|aID|bID| |eID|dID|cID|
+---+----+ +---+----+ +---+----+ +---+---+---+ +---+---+---+
| 1 | a_1| | 1 | b_1| | 1 | c_1| | 1 | 1 | 1 | | 1 | 1 | 1 |
+---+----+ | 2 | b_2| | 2 | c_2| | 2 | 1 | 2 | | 1 | 1 | 2 |
+---+----+ | 3 | c_3| +---+---+---+ +---+---+---+
+---+----+

用这些表创建的关系是:表 A > 表 B > 表 C。我想要的数据属于 Table B > Table C 关系。

+--------+---------+--------+---------+
|tblB.bID|tblB.name|tblC.cID|tblC.name|
+--------+---------+--------+---------+
| 1 | a_1 | 1 | c_1 |
| 1 | a_1 | 2 | c_2 |
| 2 | a_2 | NULL | NULL |
+--------+---------+--------+---------+

但是,为了确保我遵循正确的路径,我需要获取 Table A > Table B 关系 Table CTable B属于。我意识到,通过允许重复的 name 值,我让事情变得更加困难,但我宁愿使用小表和更复杂的查询,也不愿使用臃肿的表和更简单的查询。我正在使用的查询是

SELECT * FROM `Table E`
LEFT JOIN `Table D` ON (`Table B`.bID = `Table D`.bID)
RIGHT JOIN `Table E` ON (`Table D`.dID = `Table E`.dID))
RIGHT JOIN `Table C` ON (`Table E.cID = `Table C`.cID);

然而到目前为止它还没有奏效。提交查询时返回此错误:

ERROR 1066 (42000): Not unique table/alias: 'Table D'

关于如何让它工作的任何想法?这可能吗?

最佳答案

您说要提交的查询与您提供给我们的表结构几乎没有相似之处!什么是 表 D.national_regionID?还是 modx.coverage_state

但通常不要混合左右联接。此外,查询中使用的每个表都必须遵循 FROM 或遵循 JOIN。您似乎在连接条件中使用了 Table BTable C,但从未将它们添加到查询中。

关于具有两个键表的四个表的Mysql JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3824389/

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