MySQL 中的条件联接:基于枚举类型动态联接表
问题:
考虑一个包含 id1、id2 和 id1 列的 MySQL 表模式 类型。 type 列是一个枚举值,指定另一个表的名称。任务是根据 type 的值与指定表执行连接。
例如,您要执行以下条件连接:
解决方案:
虽然 MySQL 不直接支持条件联接,但一种解决方法是使用带有 case 运算符的多表左联接:
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'
在此查询中:
注意:
此解决方案要求所有潜在的连接表都存在于数据库中,无论类型的值如何。
以上是MySQL中如何根据枚举类型进行条件连接?的详细内容。更多信息请关注PHP中文网其他相关文章!