Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите с запросом 
:(
    Опции темы
bobanman
Дата 25.1.2016, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 16.7.2010

Репутация: нет
Всего: нет



Всем доброго времени суток. 

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

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

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

Запрос 
Код


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

 


Выдаст:


Код

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

 


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

Код


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

 


Как написать такой запрос? Достаточно ли средств простого sql или нужны какие-то спицифические функции MySql?
PM MAIL   Вверх
tzirechnoy
Дата 25.1.2016, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: 3
Всего: 16



Код
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;

PM MAIL   Вверх
bobanman
Дата 25.1.2016, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 16.7.2010

Репутация: нет
Всего: нет



Цитата(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;

Да, так работает, спасибо большое
PM MAIL   Вверх
tzirechnoy
Дата 25.1.2016, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: 3
Всего: 16



Хорошо, что работает, а то я как минимум две опечатки вижу smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.1097 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.