Подтвердить что ты не робот

Выберите столбец как true/false, если id существует в другой таблице

У меня есть 2 таблицы, одна для участников и другая для своих сервисов. Это таблицы InnoDB на сервере MySQL 5.6.

Таблица участников:

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

Таблица служб:

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

Я пытаюсь добиться этого результата:

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

Итак, если идентификатор пользователя существует в таблице служб, службы столбцов будут истинными или ложными в противном случае.

Я пытался сделать это с JOINs и Sub-Queries без успеха, поэтому мне нужна ваша помощь;)

4b9b3361

Ответ 1

используйте LEFT JOIN Таблица служб, попробуйте этот запрос

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

Вы можете использовать простой запрос, подобный этому

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