在 4 個表中加入使 phpmyadmin 無響應
我無法創建一個有效的查詢來顯示這 4 個表中的 5 列:
如您所見,我試圖在查詢中加入的關係以不同的顏色突出顯示。
我出來的查詢是:
SELECT c.CompanyName , s.categoryname , cprs.strenght , s.parentid , ss.Risklevel , ss.ColumnType FROM company_details AS c JOIN category_master AS s ON s.id = c.categoryid JOIN company_strenght AS cprs ON cprs.companyid = c.id JOIN subsector_detasils AS ss ON s.parentid = ss.subcategoryid
但是伺服器沒有響應,直到我不得不終止該程序。問題在最後一行,如果我刪除它並且只管理 3 個表,我會得到一個成功的結果,但對於我想要的還不夠。
問題描述: company_details表是公司列表。該
id
欄位是每個公司擁有的唯一 ID。我們需要將該 id 與company_strenghtcompanyid
表中的欄位匹配,以便我們可以獲取列。到目前為止一切都很好。c.CompanyName, s.categoryname, cprs.strenght
然後我們需要在結果中包含包含每個公司所屬類別的*category_master表。*所以我們為此匹配
s.id = c.categoryid
。仍然沒有問題,我得到了一份公司列表,其中包含它們所屬的類別以及它們的父類別 ID。**最後是問題:**每個公司都有一個父類別,其 id
parentid
在category_master表中(標記為綠色)。該欄位與subsector_detasils表中的欄位parentid
相同。我們需要匹配,以便我們可以在結果中獲得列。但正如我所說,它不起作用,因為 phpmyadmin 剛剛停止工作,我必須手動終止該程序。subcategoryid``s.parentid = ss.subcategoryid``ss.Risklevel, ss.ColumnType
有沒有其他方法可以解決這個問題?我的想法不多了…
提前致謝。
可能更像這樣,但我不確定你是否想使用
INNER JOIN
s :SELECT c.CompanyName , s.categoryname , cprs.strenght , s.parentid , ss.Risklevel , ss.ColumnType FROM ( ( company_details AS c INNER JOIN category_master AS s ON s.id = c.categoryid ) INNER JOIN company_strenght AS cprs ON cprs.companyid = c.id ) INNER JOIN subsector_detasils AS ss ON s.parentid = ss.subcategoryid
確保你確定它是你想要的,我也會考慮對其進行排序,以確保你所期望的一切都在那裡……
此外,為了使其更具可讀性,您可以考慮使用一些預製的
VIEW
s,使用CREATE <view-name> VIEW AS <one-inner-join>