Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

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 ;)

like image 259
BeBest Avatar asked Aug 13 '14 11:08

BeBest


People also ask

How do you check if a column exists in multiple tables?

The easiest and straightforward way to check for the column in a table is to use the information schema for column system view. Wright a select query for INFORMATION_SCHEMA. COLUMNS as shown below. If the query returns record, then the column is available in the table.

Could I make a column in a table only allows one true value and all other rows should be false?

Yep. And it would be possible to use a check constraint to ensure that only one row exists (using Celko's technique here sqlmonster.com/Uwe/Forum.aspx/ms-sql-server/3453/…)


Video Answer


2 Answers

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) 
like image 60
Girish Avatar answered Oct 11 '22 14:10

Girish


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 
like image 41
Muhammad Raheel Avatar answered Oct 11 '22 14:10

Muhammad Raheel