Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > помогите с запросом


Автор: bobanman 25.1.2016, 17:24
Всем доброго времени суток. 

Помогите составить запрос.
Есть табличка users. В ней имя пользователя и id. 

Я хочу составить запрос, и узнать есть ли в ней Вася, Петя и Леша. 

Допустим сейчас в ней только Вася и Петя.

Запрос 
Код


select username from users where username in ('Вася', 'Петя', 'Леша');

 


Выдаст:


Код

     username     |
-------------------
  Вася            | 
-------------------
  Петя            |
-------------------

 


Я хочу переделать запрос чтобы он выдавал мне:

Код


     username     | has |
-------------------------
  Вася            |  1   |
-------------------------
  Петя            |  1   |
-------------------------
  Леша            |  0   |
-------------------------

 


Как написать такой запрос? Достаточно ли средств простого sql или нужны какие-то спицифические функции MySql?

Автор: tzirechnoy 25.1.2016, 19:15
Код
SELECT tcompare.username, count(users.id) AS has
        FROM (SELECT 'Вася' AS username
              UNION ALL SELECT 'Петя'
              UNION ALL SELECT 'Леша') AS tcompare
        LEFT JOIN users ON users.username=tcompare.username
        GOUP BY tbas.username;

Автор: bobanman 25.1.2016, 19:27
Цитата(tzirechnoy @ 25.1.2016,  19:15)
Код
SELECT tcompare.username, count(users.id) AS has
        FROM (SELECT 'Вася' AS username
              UNION ALL SELECT 'Петя'
              UNION ALL SELECT 'Леша') AS tcompare
        LEFT JOIN users ON users.username=tcompare.username
        GOUP BY tbas.username;

Да, так работает, спасибо большое

Автор: tzirechnoy 25.1.2016, 21:34
Хорошо, что работает, а то я как минимум две опечатки вижу smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)