Mysql

在 4 個表中加入使 phpmyadmin 無響應

  • May 20, 2019

我無法創建一個有效的查詢來顯示這 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。

**最後是問題:**每個公司都有一個父類別,其 idparentidcategory_master表中(標記為綠色)。該欄位與subsector_detasils表中的欄位parentid相同。我們需要匹配,以便我們可以在結果中獲得列。但正如我所說,它不起作用,因為 phpmyadmin 剛剛停止工作,我必須手動終止該程序。subcategoryid``s.parentid = ss.subcategoryid``ss.Risklevel, ss.ColumnType

有沒有其他方法可以解決這個問題?我的想法不多了…

提前致謝。

可能更像這樣,但我不確定你是否想使用INNER JOINs :

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

確保你確定它是你想要的,我也會考慮對其進行排序,以確保你所期望的一切都在那裡……

此外,為了使其更具可讀性,您可以考慮使用一些預製的VIEWs,使用CREATE <view-name> VIEW AS <one-inner-join>

引用自:https://dba.stackexchange.com/questions/238627