我的两张表是
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
关于MySQL 使用内连接语法从两个表中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10423479/