SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 20.06.2011 20:47:03

nikolajtesla
Завсегдатай
Зарегистрирован: 12.10.2010
Сообщений: 25

Подскажите с запросом

Есть 2 таблицы со значениями
CREATE TABLE `t1` (
  `id` int(11) NOT NULL DEFAULT '0',
  `name` varchar(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

INSERT INTO `t1` VALUES ('1', 'n1');
INSERT INTO `t1` VALUES ('2', 'n2');
INSERT INTO `t1` VALUES ('3', 'n3');
INSERT INTO `t1` VALUES ('4', 'n4');

CREATE TABLE `t2` (
  `id` int(11) NOT NULL,
  `name` varchar(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

INSERT INTO `t2` VALUES ('1', 'n1');
INSERT INTO `t2` VALUES ('4', 'n4');

необходимо составить запрос который выведет все значения из первой таблицы которые есть в некотором списке (WHERE t1.id IN (....)), и поставит 0 если данный id не существует во второй таблице, 1 если существует

например для 1,2,3
должно вывести
1 1
2 0
3 0

Заранее спасибо за помощь

Неактивен

 

#2 20.06.2011 22:11:01

evgeny
Гуру
Зарегистрирован: 04.05.2009
Сообщений: 335

Re: Подскажите с запросом

select t1.id,if(isnull(t2.id),0,1) from t1 left join t2 on (t1.id=t2.id)

Неактивен

 

Board footer

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