繁体   English   中英

在SQL中使用多个条件检索同一列

[英]retrieve same column with multiple criteria in sql

我有一个存储created_by和updated_by的表a,而它们两个都只存储了user_id,而我有一个存储user_id和user_name的表b。 我似乎无法使用两个不同的条件检索同一列。 我有两个SQL,但如何将两者结合

SELECT b.user_name FROM a.created_by WHERE b.created_by = a.user_id
SELECT b.user_name FROM a.updated_by WHERE b.updated_by = a.user_id

我不确定您的表结构,但在我看来您想做类似的事情

SELECT u.user_name createdBy, v.user_name changedBy
FROM tablea t 
INNER JOIN tableb u ON u.user_id=t.created_by
INNER JOIN tableb v ON v.user_id=t.changed_by

您可以加入表格:

select 
   cb.user_name as createdBy,
   ub.user_name as updatedBy
from 
  a
 left join b cb on a.created_by = cb.user_id
 left join b ub on a.updated_by = ub.user_id

MySQL小提琴

您可能想使用inner join而不是left join ...不确定您的要求。

我不太了解您的问题,但我想您想将两个查询合并为一个:

SELECT b.user_name 
FROM a 
     join b on (a.user_id=b.created_by or  a.user_id=b.updated_by)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM