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

时间:2018-06-30 09:54:56

标签: mysql sql database

我有一个表a,存储了created_by和updated_by,而它们两个都只存储了user_id,而我有一个表b,存储了user_id和user_name。我似乎无法使用两个不同的条件检索同一列。我有两个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

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您可以加入表格:

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 fiddle

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

答案 2 :(得分:0)

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

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