All rights reserved.No part of this article may be reproduced or distributed by any means,or stored in a database or retrieval system,without the prior written permission of persistenceGoing author
https://blog.csdn.net/persistencegoing/article/details/84376427
比如我的a表中有type字段,值为1和2
如果a表中type值是1 我就动态连接b表
如果a表中type值是2 我就动态连接c表
第一种:
得到b表和c表的name值,可以用下面这个SQL
SELECT
*, CASE
WHEN tableA.type = 1 THEN
(
SELECT
b.`name`
FROM
b
WHERE
tableA.id = id_b
LIMIT 1
)
ELSE
(
SELECT
c.`name`
FROM
c
WHERE
tableA.id = id_c
LIMIT 1
)
END wocao
FROM
`a` tableA;
第二种:
暴力解决
SELECT
tableA.*
, CASE tableA.type
WHEN 1 THEN
b.`name`
ELSE
c.`name`
END AS className
FROM
a tableA
LEFT JOIN b ON tableA.id = id_b
LEFT JOIN c ON tableA.id = id_c
希望大家关注我一波,防止以后迷路,有需要的可以加群讨论互相学习java ,学习路线探讨,经验分享与java求职
群号:721 515 304