使用MYSQL查询将2个表与if条件联接在一起

三重梅农

我有2个表:users和prov_spec_search。我正在寻找一个符合以下条件的SQL查询来联接这些表:

users Table:

id | first_name | last_name | activ_status
-------------------------------------------
6  | sudha      | dravid    |    1
7  | Gokul      | menon     |    1
13 | sujith     | nair      |    1
-------------------------------------------

prov_spec_search表

id | inv_user_id | drafter_id | proj_status
-------------------------------------------
1  | 13          | 7          |  Ongoing
2  | 13          | 6          |    

-------------------------------------------

预期结果是:

Need to join users and prov_spec_search tables with 2 conditions where 

users.id = prov_spec_search.drafter_id

      AND 

if project_status = Ongoing then the result proj_status should show 'Not Available'. 
if proj_status is null then should show 'Availabe'. 
if no drafters_id or no records found then from users table it should show the users name with option(proj_status) 'Available'

结果:

Name         |   proj_status   
------------------------------
Gokul Menon  |   Not Available  
sudha dravid |   Available 
sujith Nair  |   Available

我从以下查询开始:

SELECT
CONCAT(users.first_name, ' ', users.last_name) AS drafter_name,
users.id AS id,
users.activ_status,
prov_spec_search.proj_current_status
FROM users
LEFT JOIN prov_spec_search ON users.id = prov_spec_search.drafter_id
WHERE (users.activ_status ='1')
亚历克斯·巴克
SELECT 
  users.id AS id,
  CONCAT(
    users.first_name, 
    ' ', 
    users.last_name
  ) AS drafter_name,
  users.activ_status,
  IF (
    prov_spec_search.proj_current_status = 'Ongoing', 
    'Not Available', 
    COALESCE(prov_spec_search.proj_current_status, 'Available')
  ) AS proj_status
FROM users

LEFT JOIN prov_spec_search 
ON users.id = prov_spec_search.drafter_id

WHERE users.activ_status = 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将2个表连接在一起,并根据单独的mysql查询使用where函数

创建查询以将2个表1对1联接在一起,没有共同之处

将2个表与SQL联接在一起

SQL将2个表与其他表的条件连接在一起

当所有联接条件均与TSQL匹配时,如何以特定顺序将2个表联接在一起

MySQL查询-将4个表连接在一起,其中3个表使用每个表的一列分组

使用视图将另一个表中的最新项的各个部分联接在一起

ActiveRecord 将 2 个表中的数据与一个查询连接在一起,无需循环

根据条件将两个表以及第二个表中的记录数联接在一起

将2个SQL查询联接在一起,以在同一查询中获得工作日平均值和周末平均值

在查询中使用一个查询的结果并将结果联接在一起[已解决]

将表与表1中的所有元组联接在一起,但表2中只有1个匹配的元组

如何查询表A,将仅来自B引用的B *和* C字段联接在一起?

将4个表连接在一起mysql(获得许多重复值)

SQL-将表联接在一起形成单个表

如何使用教义QueryBuilder将具有额外参数和额外条件的多对多表联接在一起

将2个mysql表放在一起一起显示结果

MySQL-如何使用(LEFT)JOIN通过一个表将两个表连接在一起?

使用SQL语句将三个表连接在一起,以从每个表中获取数据

如何将两个不同的表联接在一起并合计为第三个表

将熊猫条件链接在一起

将数据插入两个表,将记录链接在一起

在MySQL中将两个查询连接在一起

将 2 个表与条件组合在一起

将4个表连接在一起并检查总计不匹配的地方

SQL如何通过特定的列将两个表连接在一起?

严格按顺序将两个表连接在一起

如何修复将两个表连接在一起的错误

如何将两个表连接在一起以创建 JSON | PHP