SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 06.04.2009 20:18:29

skeef
Участник
Зарегистрирован: 29.01.2009
Сообщений: 17

Непонятки с UNION

Приветствую. Прошу растолковать уважаемых гуру что не так делаю.

Есть несколько одинаковых таблиц, названия: 210 - 215. Структура:

Код:

TABLE `210` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `l_name` varchar(35) NOT NULL,
  `name_id` mediumint(9) NOT NULL,
  `m_name_id` mediumint(9) NOT NULL
  )

Делаю запрос:

Код:

SELECT `id` AS id210 FROM `210`
WHERE `l_name`='aaa' AND `name_id`=11 AND `m_name_id`=22 

UNION ALL
SELECT `id` AS id211 FROM `211`
WHERE `l_name`='ddd' AND `name_id`=22 AND `m_name_id`=33 
UNION ALL

...

SELECT `id` AS id215 FROM `215`
WHERE `l_name`='ggg' AND `name_id`=33 AND `m_name_id`=44

Все время происходит выборка только из первой таблицы, остальные почему-то не опрашиваются sad
Алиасы для того, чтобы узнать какой таблице принадлежит id

Неактивен

 

#2 06.04.2009 20:36:47

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Непонятки с UNION

Названия колонок результата запроса берутся из первой таблицы вне зависимости от результатов.
Чтобы убедиться, что все работает, попробуйте вот так:

SELECT id, '210' AS tname FROM `210` WHERE...
UNION ALL
SELECT id, '211' AS tname FROM `211` WHERE...

Неактивен

 

Board footer

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