我在Mysql中有兩個表,一個是持有承包商,另一個是持有項目,我想生產一個承包商 - 項目報告,顯示項目的應用程序。問題是INNER JOIN,LEFT和RIGHT OUTER JOINS,都產生相同的結果,只顯示承包商有一個項目,即使我忽略了似乎很奇怪的情況。這裏是我的陳述內部聯接和外部聯接產生相同的結果
SELECT DISTINCT (tbl_contractor.name_v), count(tbl_project.name_v)
FROM tbl_contractor
INNER JOIN tbl_project
ON tbl_project.Contractor=tbl_contractor.contractor_id_v
ON tbl_project.Contractor = tbl_contractor.contractor_id_v
LIMIT 0 , 30;
SELECT DISTINCT (tbl_contractor.name_v), count(tbl_project.name_v)
FROM tbl_contractor
LEFT OUTER JOIN tbl_project
ON tbl_project.Contractor = tbl_contractor.contractor_id_v
LIMIT 0 , 30;
嘗試從查詢中取出不同。 –
http://stackoverflow.com/questions/38549/sql-difference-between-inner-and-outer-join 該鏈接應該有助於解釋。基本上你的內部連接正在交叉字段,而你的外部連接顯示了左側匹配空值的所有字段,它們不相交。假設兩張表完全匹配,他們會提供相同的數據。 – Tony318
建議:在您的查詢中添加一個分組以澄清它在做什麼。 –