我需要加入2个相同的表来显示按id排序的相同列表。 (帖子和 posts2 )
恰好在使用1个表之前,我们一直在使用第二个表( posts2 )来存储来自某个ID的新数据。
这是我在使用1个表(帖子)时使用的查询,并且工作正常。
select posts.id_usu,posts.id_cat,posts.titulo,posts.html,posts.slug,posts.fecha,hits.id,hits.hits,usuarios.id,usuarios.usuario,posts.id
From posts
Join hits On posts.id = hits.id
Join usuarios On posts.id_usu = usuarios.id
where posts.id_cat='".$catid."' order by posts.id desc
现在我尝试将此查询应用于Union 2表,但我不知道在什么时候实例化JOINS。我尝试了几种方法,但发送了MYSQL错误。以下查询合并2个表并按ID排序,但需要添加JOIN。
select * from (
SELECT posts.id,posts.id_usu,posts.id_cat,posts.titulo,posts.html,posts.slug,posts.fecha
FROM posts where id_cat='6' ORDER BY id
)X
UNION ALL
SELECT posts2.id,posts2.id_usu,posts2.id_cat,posts2.titulo,posts2.html,posts2.slug,posts2.fecha FROM posts2 where id_cat='4' ORDER BY id DESC limit 20
我需要在上面的查询中添加这个
Join hits On posts.id = hits.id
Join usuarios On posts.id_usu = usuarios.id
先谢谢你们。
答案 0 :(得分:2)
如果您想要与第一个查询相同的查询,但这次使用相同表格的联合,即post2,那么您可以这样做
select
p.id_usu,p.id_cat,p.titulo,p.html,p.slug,p.fecha
,hits.id,hits.hits,usuarios.id,usuarios.usuario
from (
(select
id_usu,id_cat,titulo,html,slug,fecha ,id
From posts
where id_cat='".$catid."' order by id desc limit 20)
UNION ALL
(select
id_usu,id_cat,titulo,html,slug,fecha ,id
From posts2
where id_cat='".$catid."' order by id desc limit 20)
) p
Join hits On p.id = hits.id
Join usuarios On p.id_usu = usuarios.id
order by p.id desc limit 20