MYSQL左连接条件OR

时间:2013-02-14 15:27:51

标签: mysql

好的,我对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加入赞助商表。任何帮助深表感谢。我做了一些研究,找不到我想要完成的答案。

1 个答案:

答案 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