mysql - 从多个表中检索信息的 SQL 语句

标签 mysql sql select join

我需要一些帮助来构建 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/

相关文章:

python - Django/Python 不喜欢 FloatField 的 None 值

sql - 对具有不同 ID 的两行求和

mysql - MySQL 中复杂的 COUNT 查询

sql - 甲骨文:选择并行条目

mysql - SQL 查询 - 显示所有可用和不可用的 ChairNo

PHP GET MySQL order by 如果不为空 echo else echo 如何

php - 使用 AJAX 将数据发送到数据库失败

mysql - 组合多个 View 中的多个 SELECT 查询来统计数据

python - 在多列上使用 numpy 二维数组从 Pandas 数据框中选择行

php - 在有序的 Mysql 查询中获取第 i 到第 j 行