搜尋

首頁  >  問答  >  主體

如何在mysql查詢中選擇、匹配和傳回值?

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

這是表傳輸:

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粉986028039P粉986028039231 天前483

全部回覆(1)我來回復

  • P粉827121558

    P粉8271215582024-04-03 15:15:27

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

    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)

    回覆
    0
  • 取消回覆