我的情況:mysql的怪異多個內部聯接情況
表 「_customers」
----------------------------------------------
customer_id | name | active
----------------------------------------------
1 'customer I' 1
----------------------------------------------
2 'customer II' 0
----------------------------------------------
表 「_projects」
----------------------------------------------
project_id | project_name | customer_id
----------------------------------------------
1 'project I' 1
----------------------------------------------
2 'project II' 2
----------------------------------------------
許多一對多表「 _project_sections「
----------------------------------------------
section_id | project_id
----------------------------------------------
2 1
----------------------------------------------
3 1
----------------------------------------------
4 1
----------------------------------------------
1 2
----------------------------------------------
在我的情況下,我需要現在所有的客戶,這是'積極'。他們也必須來自特定的部分。所以,作爲一個例子,我希望所有活躍的客戶來自「1」部分。我也計算出要獲得正確的數據,但是 - 那就是奇怪的事情 - 僅當需要id> 1的部分時。如果我試圖在第1部分中獲得所有活動客戶,那麼Query仍然會向我顯示所有使用Section_id的項目2,3,4 ...
查詢
SELECT c.customer_id, c.name, ps.section_id
FROM _customers c
INNER JOIN _projects p
ON p.customer_id = c.customer_id
INNER JOIN _project_sections ps
ON ps.project_id = p.project_id
WHERE c.active = 1 AND ps.section_id = 1
GROUP BY c.name
ORDER BY LOWER(c.name)
而且錯誤的結果:
Array
(
[customer_id] => 1
[name] => customer I
[section_id] => 1
)
也許有人可以幫助我,因爲我dont't得到它。非常感謝!
對於您顯示的數據,結果是否正確?第1部分只有一個項目,該項目只有一個客戶:客戶I.實際上,您的兩個項目都只有一個客戶,即客戶I,因此無論您指定哪個部分,都可以讓客戶回來。 – nnnnnn
我很抱歉,你說的是對的,我已經糾正了。所以,在上面這個例子中,結果應該是空的。但不幸的是不是。謝謝! – steve