select * from (
SELECT * FROM tablea
UNION ALL
SELECT * FROM tableb
UNION ALL
SELECT * FROM tablec
) x where id='123'
已知:id='123’这条记录在tableb中是存在的
但是三个表union之后再查就查不到了
原因是union使用的是*
tablea结构: id,name
tableb结构:name,id
tablec结果:id,name
union之后字段错位,所以查不到,需要改成
select * from (
SELECT id,name FROM tablea
UNION ALL
SELECT id,name FROM tableb
UNION ALL
SELECT id,name FROM tablec
) x where id='123'
这样就可以查出来了
本文介绍了解决SQL查询中使用Union导致字段错位的问题。通过调整字段顺序确保了跨表查询的一致性,使得原本无法查询到的记录能够被正确检索。
1862

被折叠的 条评论
为什么被折叠?



