如何在mysql查詢中選擇、匹配和傳回值?
P粉986028039
P粉986028039 2024-04-02 17:18:57
0
1
480

我有兩張桌子、轉會桌和俱樂部桌。

這是表傳輸:

id 名字 姓氏 來自俱樂部 去俱樂部 價格 來自backnumber 返回號碼
0 範例1 範例2 EX3 EX4 範例5 範例6 範例7

這是桌子俱樂部:

id 縮寫#全名
0 EX3 範例3
1 EX4 範例4

我想從轉帳表中獲取一行,獲取 fromclub,將其與 Clubs 中的縮寫相匹配,從該行獲取全名,並將其添加到回應中。我想對 toclub 專欄做同樣的事情。然後我想對錶傳輸中的每隔一行重複一次。

為了簡單起見,這是我的預期結果:

id 名字 姓氏 來自俱樂部 去俱樂部 價格 來自backnumber 返回號碼 來自俱樂部全名 toclub全名
0 範例1 範例2 EX3 EX4 範例5 範例6 範例7 範例3 範例4

我似乎找不到一種方法來建立一個查詢,在不獲得大約 512 行結果的情況下執行此操作,即使我目前只有 8 行結果。

SELECT *
FROM transfers,
(SELECT clubs.fullname FROM transfers, clubs WHERE clubs.abbr = transfers.fromclub) AS fromclubfullname,
(SELECT clubs.fullname FROM transfers, clubs WHERE clubs.abbr = transfers.toclub) AS toclubfullname

它會傳回 512 行和兩個欄位(稱為 fullname),而不是一列 fromclubfullname 和 toclubfullname。

P粉986028039
P粉986028039

全部回覆(1)
P粉827121558

您可以透過左連接來做到這一點 -

SELECT 
     transfers.*,
     c1.fullname as fromclubfullname,
     c2.fullname as toclubfullname FROM `transfers`
LEFT JOIN clubs c1 ON (c1.abbr = transfers.fromclub)
LEFT JOIN clubs c2 ON (c2.abbr = transfers.toclub)
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板