簡體   English   中英

MySQL使用內部聯接語法從兩個表中檢索數據

[英]MySQL Retrieving data from two tables using inner join syntax

我的兩個桌子是

Entry
event_id   competitor_id   place
101        101             1
101        102             2
101        201             3
101        301             4
102        201             2
103        201             3

第二張表列出了該活動的獎品

Prize
event_id   place          money
101        1              120
101        2              60
101        3              30
102        1              10
102        2              5
102        3              2
103        1              100
103        2              60
103        3              40

由此,我希望顯示入圍表中的所有信息以及他們為自己應得的地位贏得的獎金。 如果他們不能放入錢中,那么將顯示0。

任何幫助,將不勝感激。

嘗試這個:

SELECT  a.Event_ID, 
        a.Competitor_ID,
        a.Place,
        COALESCE(b.money, 0) as `Money`
FROM    entry a left join prize b
            on  (a.event_id = b.event_ID) AND
                (a.place = b.Place)

希望這可以幫助。

EVENT_ID    COMPETITOR_ID   PLACE   MONEY
101           101            1      120
101           102            2       60
101           201            3       30
101           301            4        0   -- << this is what you're looking for
102           201            2        5
103           201            3       40
SELECT * FROM Entry NATURAL LEFT JOIN Prize;

如果在沒有贏得任何獎金的情況下,如果您絕對希望“金錢”為0而不是NULL (但是如何區分0的獎金和沒有的獎金?):

SELECT Entry.*, COALESCE(money, 0) AS money FROM Entry NATURAL LEFT JOIN Prize;

在sqlfiddle上都可以看到它們。

嘗試這個:

select e.*, coalesce(p.money, 0) money from entry e
left join prize p
on e.event_id = p.event_id and e.place = p.place

你可以在這里玩小提琴。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM