查询以读取每个父表id的子表行

时间:2013-02-24 00:04:01

标签: mysql sql

我有父表A和子表B.

Parent Table A
---------------
AID,
AName,
Acode

Child Table B
-------------
AID,
BID,
BName,
BCode

我正在尝试形成一个查询来从A中检索行,并为每个AID检索B中的相应行。所以基本上结果是A的所有行和每个AID的B行。我希望我有道理。我需要使用连接吗?

2 个答案:

答案 0 :(得分:6)

您将在表格之间使用JOIN

select a.aid,
  a.aname,
  a.acode,
  b.bname,
  b.bcode
from tableA a
inner join tableB b
  on a.aid = b.aid

JOIN位于aid之间tableAaid tableB之间。我使用了INNER JOIN,它将返回两个表中存在的所有行。如果您想要返回tableA中的所有行,即使tableB中没有匹配的行,那么您将使用LEFT JOIN

如果您需要帮助学习加入语法,这里有一个很棒的visual explanation of joins

答案 1 :(得分:1)

是的,你做了。

  

从tableA中选择一个。*,b。* a aAID = b.AID的内联接TableB b;