SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 25.01.2016 17:08:28

bobanman
Участник
Зарегистрирован: 22.01.2016
Сообщений: 13

помогите с запросом

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

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

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

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

Запрос


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


Выдаст:


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


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


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


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

Отредактированно bobanman (25.01.2016 17:09:44)

Неактивен

 

#2 25.01.2016 19:27:57

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: помогите с запросом

select t.username, if(ifnull(users.id, 0), 1, 0) has from (select 'Вася' username union select 'Петя' union select 'Леша') t left join users using(username);

Неактивен

 

#3 25.01.2016 19:30:31

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: помогите с запросом

Вася, а если таких имен тысячи, то лучше временную табличку сделать с именами и с ней лефтджоиниться, да?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#4 25.01.2016 19:45:26

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: помогите с запросом

временная таблица позволит загружать имена через load data infile что будет быстрее

Неактивен

 

#5 25.01.2016 19:50:50

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: помогите с запросом

Не, я не про загрузку, данных в таблицу, а про селект. Просто десять тысяч union'ов - тоже ж не айс.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#6 25.01.2016 20:17:26

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: помогите с запросом

Не айс, и доп расходы.
Зато терпение и труд. Это-ж какой рост личности smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson