使用 SQL 查询 3 个表中的列

史密斯

我有 3 个表,TABLE1、TABLE2 和 TABLE3。

TABLE1 有 ID 和 TYPE 作为列

TABLE2 有 ID、DATE 和 VALUE 作为列

TABLE3 有 ID 和 DESC

基本上 TABLE1 只是用作映射表。它只是用 TYPE 列告诉某个 ID 是什么类型的东西。我们有 1-3 作为 TYPE。

TABLE2 包含每个 ID 的交易日期。因此,在 TABLE2 中可能有多个相同的 ID,但具有不同的 DATE。VALUE 是该 ID 的 DATE 交易金额

TABLE3 与 TABLE1 类似,但具有不同的 DESC 列。

所以我的问题是如何查询发生在 DATE = 5/27/2018 (TABLE2) 的所有 TYPE = 1 (TABLE1) 的 ID。查询将包含列 ID、DATE、VALUE 和 DESC (TABLE3)

我的方法是使用 JOIN

SELECT TABLE1.ID, TABLE2.DATE, TALBE2.VALUE
FROM TALBE2
INNER JOIN TABLE1 ON TABLE1.ID = TABLE2.ID
WHERE TABLE1.TYPE = 1 AND TABLE2.DATE = '5/27/2018';

我的问题是它不起作用,而且还不包括 TABLE3.DESC。

舍尔德

我希望您没有使用给定的确切 SQL 语句。它有 2 个 TALBE-TABLE 组合。

查询应该是这样的:

SELECT TABLE1.ID, TABLE2.DATE, TABLE2.VALUE, TABLE3.DESC
FROM TABLE2
LEFT JOIN TABLE1 ON TABLE2.ID = TABLE1.ID
LEFT JOIN TABLE3 ON TABLE2.ID = TABLE3.ID
WHERE TABLE1.TYPE = 1 AND TABLE2.DATE = '5/27/2018'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章