根据条件查询不同表 复合查询

carldlee 2014-06-08 08:07:10
有3张表:

【T_A】
----------------------
ID :主键
NAME
PASSWORD
CREATE_DATE
FLAG

【T_B】
----------------------
ID :主键
NAME
AREA

【T_C】
-------------------
ID :主键
NAME
OBJ_TYPE 0:连接T_A表(OBJ_ID是外键) 1:连接OBJ_B表 ...............
OBJ_ID (外键)

如上,共有T_A ,T_B,T_C 3个表。当查询C表时需要查询其外键连接的表的NAME信息。
例如:
OBJ_TYPE=0就连接T_A表(查询A表的NAME)。
OBJ_TYPE=1就连接T_B表(查询B表的NAME)。
现在想法是分开查询后再UNION ALL
SELECT(OBJ_TYPE=0,左连连接A表的查询结果)
UNION
SELECT(OBJ_TYPE=1,左连连接B表的查询结果)

但是如果有7-8个表。。就太麻烦了。有没有好办法?

...全文
59 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2014-06-09
  • 打赏
  • 举报
回复
没什么好方法,你的表本来就是分开的
ACMAIN_CHM 2014-06-08
  • 打赏
  • 举报
回复
没什么好办法。 或者用 case when select NAME, case OBJ_TYPE when 1 select X from A whe n2 select X from B, ...

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧