表A
-ID
-B_ID
-AA
-AAA
-...表B
-ID
-BB
-BBB
-...其中B_ID与表B的ID多对一对应,现要求列出表B的所有数据,并且列出表A中有B_ID与对应ID相同的数据,本人初学关系型数据库,请指教。
以前我是先用表B查出所有的数据,每读一个表B数据就从表A中查一次,这样效率太低,有没有好的解决办法,谢了。
-ID
-B_ID
-AA
-AAA
-...表B
-ID
-BB
-BBB
-...其中B_ID与表B的ID多对一对应,现要求列出表B的所有数据,并且列出表A中有B_ID与对应ID相同的数据,本人初学关系型数据库,请指教。
以前我是先用表B查出所有的数据,每读一个表B数据就从表A中查一次,这样效率太低,有没有好的解决办法,谢了。
select A.*,B.* from A left join B on A.B_ID=B.ID因為A表的B_ID与表B的ID多对一对应,所以把A表當成主表,B表當成從表
用左連,兩個表相連,無論條件什麼樣?主表的數據一定全部被選出來,從表符合條件的記錄被出來,不符合條件的記錄用null填充
A.* from B left join A on B.ID=A.B_ID ' A表中B_ID等于B表中ID的数据
right join 右連,意思與左連恰好相反
inner join 內連,兩邊都符合條件的才選出來
full join 兩邊符合條件的,以及左邊不符合條件的,還以及右邊不符合條件的
我想显示成这样:第一个B.BB 和 (B_ID=第一个B.ID的所有)A.AA
第二个B.BB 和 (B_ID=第二个B.ID的所有)A.AA得到你那个集合后怎么显示呢?
from B left join B.ID=A.B_ID