3个表上的外键连接

时间:2014-12-22 12:06:39

标签: php mysql foreign-keys inner-join primary-key

我有一个表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 

编辑: 我的桌子的图片。 enter image description here

所以我试图显示表B中的数据,但只显示表C中匹配的数据。

新编辑: enter image description here

我从2个表中获取值,但现在我只需要显示等于" val2"的列A值。 B列的值为" val2" " val2的" " VAL3"等等。我只需要显示" val2"。

2 个答案:

答案 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';