表 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 五
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