mysql - 根据字段值更改mysql表连接

标签 mysql sql join

MySQL 是否可以根据记录的特定字段中的内容更改表的 JOIN?

示例:

SELECT 
CASE table0.status
WHEN 1 THEN table1.id
WHEN 2 THEN table2.id
END
FROM 
table0, table1, table2
IF (table0.status = 1, INNER JOIN queue ON table1.id = table0.product, INNER JOIN queue ON table2.id = table0.product)

如果 table0 中“product”的值为 1,则我需要连接表为 table1;如果 table0 中“product”值为 2,则连接表为 table2。

当我尝试上面的例子时,我只得到 mysql 语法错误。我也尝试过使用 CASE 语句而不是 IF 但仍然不起作用。

最佳答案

我认为在这种情况下,子选择将是比 JOIN 更好的解决方案。您可以使用包含 SELECTCASE 语句。

关于mysql - 根据字段值更改mysql表连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4713395/

相关文章:

php - 我的在线测验 Android 应用程序的良好数据库设计方法是什么?

Mysql - "Order by"无法使用 "CONCAT"工作

php - 使用 Docker 和 Laravel 我在 MySQL 中遇到此错误 : “SQLSTATE[HY000] [2002] No such file or directory”

sql - 在表中查找包含 % 符号的行

sql - 如何在 SQL 代理作业中执行存储过程?

sql - 像自定义 dsl 查询一样将 Sql 转换为 ElasticSearch?

mysql - 在 MySQL 中的 JOIN 中进行排序 - 每个用户的最新消息

mysql - 根据第三个 "key"表从两个表返回值,然后将值相乘并求和

php - jQuery Ajax 到 PHP MySQL - 跨域内部服务器错误 (500)

PHP-MySql 加入-