我有3张桌子(博客,新闻,照片)。
所有表都有以下公共字段(id,pub_date,title)。
我想查看3个表格中的最新发布内容,我还希望获得id,title和pub日期,并且最好知道每个内容的表格(即博客,新闻等)
这就是我所拥有的,它产生了这个错误 - 'on clause'中的未知列'b.pub_date'“)
SELECT b.id, b.pub_date, b.title,\
n.id, n.pub_date, n.title,\
p.id, p.pub_date, p.title FROM
blog b,\
news n,\
photos p\
JOIN n ON b.pub_date = n.pub_date\
JOIN p ON b.pub_date = p.pub_date\
WHERE b.is_published=1 AND n.is_published=1 AND p.is_published=1\
ORDER by b.pub_date LIMIT %s", [limit]);
除了它可能会带来有关模型设计的可疑问题之外,我如何才能从查询中获得所需的信息?
谢谢,
答案 0 :(得分:1)
您的JOIN语法不正确,应该是:
FROM blog b
JOIN news n ON b.pub_date = n.pub_date
JOIN photos p ON b.pub_date = p.pub_date
答案 1 :(得分:0)
我实际上在IRC的帮助下解决了这个问题,在Plushy和Twist-的道具上#sql
SELECT id, pub_date, title FROM blog WHERE is_published=1\
UNION\
SELECT id, pub_date, title FROM news WHERE is_published=1\
UNION\
SELECT id, pub_date, title FROM photos WHERE is_published=1\
UNION\
ORDER by pub_date LIMIT %s", [limit]);