使用SQL

时间:2018-07-20 08:47:46

标签: sql

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

TABLE1的ID和TYPE为列

TABLE2的ID,DATE和VALUE作为列

TABLE3具有ID和DESC

基本上,TABLE1只是用作映射表。它只是通过TYPE列告诉您某个ID的类型。我们的类型为1-3。

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。

1 个答案:

答案 0 :(得分:0)

我希望您没有使用给定的确切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'
相关问题