我有两张桌子
表奖
表条目
我需要做的就是为每个条目列出event_id
,horse_id
,地点和奖金。我执行了以下查询,但我没有得到准确的Prizemoney。
SELECT entry.event_id,entry.horse_id, entry.place, prize.prizemoney
FROM entry
LEFT OUTER JOIN prize ON prize.event_code=entry.event_id
GROUP BY event_id, horse_id;
输出
答案 0 :(得分:0)
问题是您的event_id
本身并不是真正独特的 - 有多个行具有相同的event_id。您实际看到的是一个复合键(event_id
和place
)定义一个唯一条目。因此,当您仅在event_id
加入时,MySQL不确定返回哪个奖金值。例如,对于event_id = 101,应返回四个不同的值(120, 60, 30, 10
)。
修改: event_id
和place
上的LEFT JOIN:
LEFT OUTER JOIN prize ON prize.event_code=entry.event_id AND prize.place = entry.place
原始答案:如果您尚未为奖金表(表格奖励)和表格条目创建主键约束,则您需要这样做: 事件ID 101,第一名应获得自己的主键,事件ID 101,第二名其自己的主键等。然后加入主键以获取正确的导致输出表格。
答案 1 :(得分:0)
试试这个
select e.event_id, e.horse_id, e.place, p.prizemoney
from entry e
left join prize p on p.event_code = e.event_id AND e.place = p.place