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

10-12 02:26