表 total
ID tableName tableID
1 A 1
2 A 2
3 B 1
4 A 3
5 A 4
6 B 2
7 B 3
8 B 4
6 A 5
表 A
ID NAME
1 一
2 二
3 三
4 四
5 五
6 六
7 七
表 B
ID NAME
1 1
2 2
3 3
4 4
5 5
6 6
7 7total做主表,当tableName=A的时候,就到A表关联相应ID的记录;当table=B的时候,就到B表关联相应ID的记录。期望的结果集:
ID tableName tableID NAME
1 A 1 一
2 A 2 二
3 B 1 1
4 A 3 三
5 A 4 四
6 B 2 2
7 B 3 3
8 B 4 4
6 A 5 五
ID tableName tableID
1 A 1
2 A 2
3 B 1
4 A 3
5 A 4
6 B 2
7 B 3
8 B 4
6 A 5
表 A
ID NAME
1 一
2 二
3 三
4 四
5 五
6 六
7 七
表 B
ID NAME
1 1
2 2
3 3
4 4
5 5
6 6
7 7total做主表,当tableName=A的时候,就到A表关联相应ID的记录;当table=B的时候,就到B表关联相应ID的记录。期望的结果集:
ID tableName tableID NAME
1 A 1 一
2 A 2 二
3 B 1 1
4 A 3 三
5 A 4 四
6 B 2 2
7 B 3 3
8 B 4 4
6 A 5 五
解决方案 »
- 关于mysql 的data文件夹
- mysql 插入更新记录 请教
- 求助sql语句,没分了,唉……
- mysql命令行下输入什么命令可以弹出一个一个文档编辑框
- Access denied for user 'SYSTEM'@'localhost' (using password: NO)
- 请教explain中extra using where问题
- sql需要优化 改or 为union sql
- mysql
- 如何在mysql里删除一个数据
- 更新mysql数据库爆重复数据问题,但是我根本没有这个重复问题,请高人看看
- 求助!怎样实现数据库语句的优化?
- MySQL史上最难的难题,急求高人!高人请进!LEFT JOIN + UNION 四个表
FROM total T
LEFT JOIN A on T.totalName=A.ID AND T.totalName='A'
LEFT JOIN B on T.totalNmae=B.ID AND T.totalName='B'
FROM a_table t
LEFT JOIN a_a a ON t.tableID=a.id AND tableName='A'
LEFT JOIN a_b b ON t.tableID=b.id AND tableName='B'
SELECT a.*,IF((tableName='A'),(SELECT name FROM a_a m WHERE m.id=a.tableID),(SELECT name FROM a_b n WHERE n.id=a.tableID)) as name
FROM a_table a;
http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html