连接表取决于活动和活动ID

时间:2017-06-07 06:44:05

标签: mysql sql

我需要做一个搜索查询,它会根据活动在2个分隔的表中查找结果。 问题是,他们加入了相同的ID。现在它不能正常工作..

表日志

id     activity     activityid
1       news          155
2       prod          232
3       news          412

表新闻

id       title     
155      Something    
412      Something 

表产品

id       intro     
232      Something     


SELECT *
FROM log l 
INNER JOIN product p ON l.activityid=p.id and l.activity='prod'
INNER JOIN news n ON l.activityid=n.id and l.activity='news'
WHERE p.title like '%something%' or n.intro like '%something%'

我缺少什么?

2 个答案:

答案 0 :(得分:2)

可能你应该使用左连接而不是内连接:

SELECT *
FROM log l 
LEFT JOIN product p ON l.activityid=p.id and l.activity='prod'
LEFT JOIN news n ON l.activityid=n.id and l.activity='news'
WHERE p.title like '%something%' 
    or n.intro like '%something%'

无论如何,请关注草莓的建议......

答案 1 :(得分:1)

可能是使用左连接,别名名称不匹配n.titlep.intro

SELECT *
FROM log l 
LEFT JOIN product p ON l.activityid=p.id and l.activity='prod'
LEFT JOIN news n ON l.activityid=n.id and l.activity='news'
WHERE n.title like '%something%' 
    or p.intro like '%something%'