我有一个表 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
编辑 :
我的 table 的图片。
所以我试图显示表 B 中的数据,但只显示表 C 中匹配的数据。
新编辑:
我从 2 个表中获取值,但现在我只需要显示等于“val2”的 A 列值。图像 B 列的值为“val2”“val2”“val3”等。我只需要显示“val2”。
最佳答案
您不必使用 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';
关于php - 3 个表上的外键连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27602425/