【发布时间】:2014-03-08 06:07:57
【问题描述】:
如果当前表的field 等于某个特定值,我想加入另一个表。
例如:(这不是mysql语法)
SELECT * FROM `products` ( IF products.is_package IS NOT NULL THEN INNER JOIN `packages` )
餐桌产品:
+----+-----------+
| id | is_package|
+----+-----------+
| 1 | 1 | // which joins package with id 1
+----+-----------+
| 2 | NULL |
+----+-----------+
| 3 | 2 | // which joins package with id 2
+----+-----------+
在mysql中可以做到这一点吗?
【问题讨论】:
-
这不就是一个左连接吗?
-
是吗?我是 sql 语言的新手
-
只是左连接
-
我想在这两种情况下都有数据,无论 is_package 是 null 还是 id。左连接是否适用于此目的?
-
如果您事先知道所有
ENUM值 和相应的外键,那么您将全部加入它们,但使用CASE WHEN构造准确检索您需要的内容。它仍然是一堆LEFT JOINs。它不会很漂亮,但应该是可行的。
标签: mysql sql join conditional-statements