18 mysql conditional join
我有一个表id1,id2,type.type是包含另一个表的名称的枚举值.我想join用表格的名称进行预制type.例如:
switch($type)
case 'table1':
join table1;
break;
case 'table2':
join table2;
break;
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
Gre*_*reg 19
你不能直接这样做......你可以做这样的事情(不是很漂亮......):
SELECT
t.id,
t.type,
t2.id AS id2,
t3.id AS id3
FROM t
LEFT JOIN t2 ON t2.id = t.id AND t.type = 't2'
LEFT JOIN t3 ON t3.id = t.id AND t.type = 't3'
Run Code Online (Sandbox Code Playgroud)
丑陋的方式:
表类型,T1,T2:
SELECT ... FROM Types, T1 , where Types.ID=T1.Types_ID AND Types.TYPE='TABLE1'
UNION
SELECT ... FROM Types, T2 , where Types.ID=T2.Types_ID AND Types.TYPE='TABLE2'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29651 次 |
| 最近记录: |