[英]Select data from different columns and two tables
我已經問過(並解決了) 這里附近的東西,但是現在更加復雜了。 我有相同的BID表:
Id_auction bidder_1 winner_1 bidder_2 winner_2 item
1 Alice 1 Ben 1 cup
2 Charles 0 Alice 1 mug
3 Ben 1 Charles 1 pen
但是現在我想將信息與另一個表USD合並
Id_auction USD
1 100
2 150
3 50
如果投標人是中標者,則值為1;如果不是中標人,則值為0。因此,在第一次拍賣中,愛麗絲和本是中標者,在第二次拍賣中,只有愛麗絲獲勝。 我將需要一個MySQL查詢,因此結果將如下所示:
Id_auction bidder item bidder_number USD
1 Alice cup 1 100
1 Ben cup 2 100
2 Alice mug 2 150
3 Ben pen 1 50
3 Charles pen 2 50
謝謝!
只需JOIN
此表USD
:
SELECT sub.*, USD.USD
FROM
(
SELECT
t1.id_auction,
t2.bidder_1 AS bidder,
t2.item,
1 AS bidder_number
FROM table1 t1
INNER JOIN table1 t2 ON t1.id_auction = t2.id_auction
AND t2.winner_1 = 1
UNION ALL
SELECT
t1.id_auction,
t2.bidder_2 AS bidder,
t2.item,
2
FROM table1 t1
INNER JOIN table1 t2 ON t1.id_auction = t2.id_auction
AND t2.winner_2 = 1
) AS sub
INNER JOIN USD ON sub.id_auction = USD.id_auction
ORDER BY id_auction, bidder;
| ID_AUCTION | BIDDER | ITEM | BIDDER_NUMBER | USD |
-----------------------------------------------------
| 1 | Alice | cup | 1 | 100 |
| 1 | Ben | cup | 2 | 100 |
| 2 | Alice | mug | 2 | 150 |
| 3 | Ben | pen | 1 | 50 |
| 3 | Charles | pen | 2 | 50 |
SELECT
BID.Id_auction AS Id_auction,
BID.bidder_1 AS bidder,
BID.item AS item,
USD.USD AS USD,
1 AS bidder_number
FROM BID
INNER JOIN USD ON BID.Id_auction=USD.Id_auction
WHERE BID.winner_1=1
UNION ALL
SELECT
BID.Id_auction AS Id_auction,
BID.bidder_2 AS bidder,
BID.item AS item,
USD.USD AS USD,
2 AS bidder_number
FROM BID
INNER JOIN USD ON BID.Id_auction=USD.Id_auction
WHERE BID.winner_2=1
ORDER BY BID.Id_auction, budder_number
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.