MySQL 使用单行作为 Where In

标签 mysql sql

我有以下行。

+-----------+-----------+-----------+
| A_USER_ID | B_USER_ID | C_USER_ID |
+-----------+-----------+-----------+
|         4 |         1 |         2 |
+-----------+-----------+-----------+

我之所以拥有这种格式的数据,是因为我正在运行交叉连接以生成数据中的所有三元组。

我现在需要检索每个 ID 的用户详细信息。我正在寻找类似以下内容的内容。

SELECT * FROM USERS WHERE USER_ID IN ([existing-query])

我不确定该怎么做,因为 MySQL 没有轮换。

谢谢!

最佳答案

那么,您可以为此使用 exists:

select u.*
from users u
where exists (select 1
              from <existing query> q
              where u.user_id in (q.a_user_id, q.b_user_id, q.c_user_id)
             );

关于MySQL 使用单行作为 Where In,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48911203/

相关文章:

mysql - 如何在日期时间 MM/DD/YYYY HH :MM:SS AM in MySQL 2008 中返回字符串 '2016-06-27 05:29:39'

左连接的Mysql查询性能问题

c# - 从数据库表生成类

tags - SQL 查询 : Selecting a row if it has all related options in a related table

MySQL 使用嵌套选择更新表

mysql - 动态表有点像 View ,但有一个可更新的额外列?

php - fatal error 异常: Error: Class 'PDO' not found on symfony2

Mysql如何按最高计数列从最低排序

mysql - 操作与限制同时加入

sql - 如何使用枚举值在 oracle 中添加一列?