好的,我对SQL是半效的,我尝试在左连接中使用OR语句,发现它不起作用。
我这样做的原因是因为我有两个表中的两列,如果一个返回NULL,我试图用它来连接。我有两张桌子 - 活动和季节。每个表都有一个赞助商ID列,我用它来加入赞助商表。这背后的原因是因为有时一个事件是赞助而不是整个赛季或反过来。
我的问题是我能做到这一点的最好方法。我的原始查询与此不同,但它的概念相同(除了它不会从每个表中获取每一列)。
SELECT sp.*, re.*, ev.*, se.*
FROM events ev
INNER JOIN seasons se ON se.season_id=ev.event_sid
INNER JOIN results re ON ev.event_id=re.results_eid
LEFT JOIN sponsors sp ON ev.event_sponsor=sp.sponsor_id
最后我尝试着用OR se.season_sponsor=sp.sponsor_id
最终,我正在尝试使用ev.event_sponsor或se.season_sponsor加入赞助商表。任何帮助深表感谢。我做了一些研究,找不到我想要完成的答案。
答案 0 :(得分:1)
尝试:
SELECT sp.*, re.*, ev.*, se.*
FROM events ev
INNER JOIN seasons se ON se.season_id=ev.event_sid
INNER JOIN results re ON ev.event_id=re.results_eid
LEFT JOIN sponsors sp ON COALESCE(ev.event_sponsor,se.season_sponsor)=sp.sponsor_id