我需要做一个搜索查询,它会根据活动在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%'
我缺少什么?
答案 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.title
和p.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%'