我有一个表TableA,它包含表TableB和TableC的2个不同的外键。我试图从表TableB中获取数据,但取决于表TableC中的值。
通过此查询,我获得了所有值,但我不知道如何编写where子句来过滤并获取我需要的数据。
SELECT TableC.value1,TableB.value2
FROM TableA
JOIN TableB ON TableB.ID = TableA.ID
JOIN TableC ON TableC.ID = TableA.ID
编辑: 我的桌子的图片。
所以我试图显示表B中的数据,但只显示表C中匹配的数据。
新编辑:
我从2个表中获取值,但现在我只需要显示等于" val2"的列A值。 B列的值为" val2" " val2的" " VAL3"等等。我只需要显示" val2"。
答案 0 :(得分:3)
我不确定我的问题是否正确,但不应该做以下工作?
SELECT TableC.value1,TableB.value2
FROM TableA
JOIN TableB ON TableB.ID = TableA.ID
JOIN TableC ON TableC.ID = TableA.ID
WHERE TableC.myColumn = MyValue
答案 1 :(得分:1)
您不必使用WHERE
子句。您需要的是修复您的JOIN
并将其JOIN
改为tablec
,条件为TableA.TableC_ID = TableC.ID
,如下所示:
SELECT TableC.value1,TableB.value2
FROM TableA
JOIN TableB ON TableB.ID = TableA.ID
JOIN TableC ON TableA.TableC_ID = TableC.ID
WHERE tableA.ColumnA = 'val2';