select column as true / false if id is exists in another table

匿名 (未验证) 提交于 2019-12-03 02:45:02

问题:

I have 2 tables, one for members and another one for their services. Those are InnoDB tables on MySQL 5.6 server.

Members table:

id     |       name       |   phone ----------------------------------------   1       Daniel             123456789   2       Liam               123456789   3       Lucas              123456789 

Services table:

 MID    |    profile    |     lastSeen ----------------------------------------   1       2                  2014-08-13 14:23:23   3       1                  2014-08-12 15:29:11 

I try to achieve this result:

 id     | name      | services ---------------------------------   1       Daniel      true   2       Liam        false   3       Lucas       true 

So if the user ID is exists in services table, the column services will be true or false otherwise.

I tried to do it with JOINs and Sub-Queries without success, so I need your help ;)

回答1:

use LEFT JOIN Services table, Try this query

SELECT members.id, members.name,         IF(services.mid IS NULL, FALSE, TRUE) as services FROM members LEFT JOIN services ON (members.id = services.mid) 


回答2:

select m.id, m.name, case when s.mid is null then false else true end from members m left join services s     on s.profile = m.id 


回答3:

You can use a simple query like this

SELECT     m.id,     m.name     IF(s.MID,true,false) services FROM members m LEFT JOIN services s ON s.profile = m.id 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!