table: a
table: b
table: c
union으로 묶은 후에 쿼리하면 어떻게든 될 것 같은데요?
일단 생각을 좀 해봐야겠네요...
일단 제가 생각한 쿼리는 아래와 같습니다.
select t_set.data from ( select 0 as t_id, id, data from test_a union select 1 as t_id, id, data from test_b union select 2 as t_id, id, data from test_c ) t_set, test_d as d where t_set.t_id = d.tbl_id and t_set.id = d.pid;
수행 결과는 아래와 같습니다.
+------+
| data |
| a |
| d |
2 rows in set (0.00 sec)
아마 더 좋은 쿼리가 있겠죠?
아래는 테이블 내역입니다.
------------------------------------------------------------------
mysql> select * from test_a;
+------+------+
| id | data |
| 1 | a |
| 2 | b |
mysql> select * from test_b;
| 1 | c |
| 2 | d |
mysql> select * from test_c;
| 1 | e |
| 2 | f |
mysql> select * from test_d;
+------+--------+------+
| id | tbl_id | pid |
| 1 | 0 | 1 |
| 2 | 1 | 2 |