IM製作lefjoin在MySQL諮詢這樣MySQL的左連接數,如果表是沒有空
SELECT A.*,B.*,C.*,D.*
from TableA A
left join TableB B on A.id=B.id
left join TableC C on A.id=C.id
left join TableD D on A.id=D.id
where
//some condition
//group by
//order by
最終的結果是一個數組一維的,但有些價值不具有數據他們,比如我有一些價值B.Value1: null
,C.Value1: null
,B.Value2: null
等
我在找,它是隻計算表的數據,方程式。
- 乙表是空白的
id=20
所以此id的結果應該是3(A,C和d) - C,d表是空白的
id=22
所以此id的結果應該是2(A和B)
注:
- 如果在表1箇中值爲空的表格中沒有數據有此ID
- 表A中總是有數據
我想你誤解的概念mysql查詢語句和結果。因此,當您查詢任何語句時,結果將始終具有相同的列數。所以,如果你的期望:* B表格對於id = 20是空白的,所以這個id的結果應該是3(A,C和D)*意味着你期望結果集中的某些記錄將有3列,記錄4列 - 一些記錄返回2列 - 你的期望是絕對錯誤的。你不能用任何sql服務器(mysql,sql,oracle,postgres)來做到這一點。永遠不會結果集包含不同行數的不同列數。 – Alex
你可以通過在單個列中連接結果來「模擬」這種行爲(基本的MySQL concat函數忽略空值),但它是不可靠的。 – Capsule
使用'JOIN'而不是'LEFT JOIN'。 – EternalHour