我需要一些帮助来构建 SQL 语句。 我只了解有关 SQL(插入、删除、更改、位置、选择)的基本知识,但从未真正处理过聚合函数或联接。
所以这里是设置:
表A
- 客户编号
- 产品编号
- 状态码
- ...
表 B
- 客户编号
- land_id
- ...
表 C
- country_id
- ...
表 D
- country_id
- 国家代码
表E
- 产品编号
- 国家代码1
SQL 语句应输出的内容是:表 A 中 statusCode 为 1、2 或 3 且 country_code == country_code1 的所有行。
其中country_code可以通过表B、C、D获取,country_code1可以通过表E获取。
请不要发布有关数据库结构本身的答案,因为我无权更改它们。
我的方法是这样的,但很明显这是非常错误的,因为我是一个 SQL 初学者:
SELECT * FROM TableA
INNER JOIN TableB ON TableA.cust_id = TableB.cust_id
INNER JOIN TableC ON TableB.landId = TableC.country_id
INNER JOIN TableE ON TableA.prod_id = TableE.product_id
INNER JOIN TableD ON TableE.country_code1 = TableD.country_code
WHERE statusCode IN (1,2,3)
最佳答案
脱离我的头脑。
用FK连接两组表 加入那些团体, 限制 super 集 更多精彩
SELECT *
FROM (tableA A INNER JOIN tableB B ON A.cust_id=B.cust_id)
INNER JOIN tableE E ON E.product_id=A.prod_id
INNER JOIN (tableC C INNER JOIN tabldeD D ON D.country_id)
ON D.country_code = E.country_code1
WHERE A.statusCode IN(1,2,3)
我们不必担心国家代码位,因为它在“连接”中。
关于mysql - 从多个表中检索信息的 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27756684/