从主表中选择 *包括外键相关表

  • 本文关键字:包括外 选择 mysql
  • 更新时间 :
  • 英文 :


我有3个表。

Table A
a_id, a_name, a_description, b_id
Table B
b_id, b_name, c_id
Table C
c_id, c_name (c_name is unique hence no duplicates)

table'有一个外键" b_id"到表" b&quot"。表" b&quot"将外键'c_id'到表C

我想要所有表" a"(没有子句)的所有行。每一行都有" b_id",因此我还需要表" b&quot"中该外键的行细节。和" c_id"的行细节。

如何在有效的单个查询中实现它?我使用了三个单独的查询,并在PHP中合并结果。代码看起来很复杂。我知道有更简单,有效的方法,因为我刚刚开始MySQL。

我正在制作所有这些数据并发送到我的应用程序的API。

编辑:

  • 我正在做"选择 *"从表"
  • 然后,我正在迭代行阵列和跑步and&quot&quot'select b_name表B其中b_id = a.b_id;
  • 然后"从表B中选择C_NAME,其中c_id = b.c_id;

我正在合并数组结果。

我需要的结果是表A的 *列,来自表B和表c。

在这里您需要使用join

Select A.*,B.b_name as b_name,C.c_name as c_name
from A left join B on A.b_id = B.b_id left join C on B.c_id = C.c_id

使用JOIN,例如:

SELECT A.a_id, B.b_id, C.c_id FROM A JOIN B ON A.b_id = B.b_id JOIN C ON B.c_id = C.c_id

更多信息:http://www.w3schools.com/sql/sql_join_left.asp

最新更新