![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
alafin |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 12.4.2006 Репутация: нет Всего: 2 |
Нужно сделать выборку из 2 однотипных таблиц(party1, party2) и отсортировать записи по полю name.
Структура таблиц такая CREATE TABLE `party1` ( `ID` int(10) NOT NULL auto_increment, `name` varchar(255) character set latin1 collate latin1_german2_ci NOT NULL, `location` int(10) NOT NULL, `deleted` int(2) NOT NULL default '0', PRIMARY KEY (`ID`), KEY `name` (`name`), FULLTEXT KEY `name_2` (`name`) ) ENGINE=MyISAM Сделал такой запрос, но он что-то не помогает (SELECT * FROM party1 WHERE deleted = '0') UNION (SELECT * FROM party2 WHERE deleted = '0') ORDER BY name ASC Подскажите в чем может быть дело. --------------------
http://python.com.ua |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Добавлено через 1 минуту и 4 секунды PS. Скорее всего, в подзапросе придется в обоих частях UNION указать вместо звездочки имена выбираемых полей поштучно. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
alafin |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 12.4.2006 Репутация: нет Всего: 2 |
При таком запросе phpMyAdmin выдает следующую ошибку:
#1248 - Every derived table must have its own alias Как быть в таком случае? --------------------
http://python.com.ua |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
SharedNoob |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 25.6.2007 Где: UA Репутация: нет Всего: 5 |
а я бы еще к UNION добавил ALL во имя избежания группировки записей
![]() |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
каждая таблица(в смысле - одна и та же таблица, входящая в запрос в разных ролях) должна иметь собственный псевдоним. псевдоним задается через оператор as(как для таблиц, так и для полей):
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
В данном случае парсер не может понять, какой из deleted нужен. Т.е. заменить их на partyX.deleted.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
alafin |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 12.4.2006 Репутация: нет Всего: 2 |
Пробую так
Select * From ( ( SELECT ID AS ID1, name AS name1, location AS location1, deleted AS deleted1 FROM party1 WHERE deleted1 = '0' ) UNION ALL ( SELECT ID AS ID2, name AS name2, location AS location2, deleted AS deleted2 FROM party2 WHERE deleted2 = '0' ) ) ORDER BY name ASC Но ошибка таже. --------------------
http://python.com.ua |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 6 Всего: 401 |
Зачем вообще две таблицы, если одни однотипные? Не проще ли объединить в одну и добавить различительное поле?
Вообще по мануалу самый первый запрос должен работать, а вариант Akinы, при всем уважении, кажется мне искусственным и избыточным. alafin, какую ошибку выдавал самый первый вариант? -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
alafin |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 12.4.2006 Репутация: нет Всего: 2 |
Первый запрос выдавал следующую ошибку:
#1271 - Illegal mix of collations for operation 'UNION' --------------------
http://python.com.ua |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 6 Всего: 401 |
А у таблиц разные кодировки?
-------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
Akina |
|
||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Для 5-й версии - да. Но версии мы до сих пор не знаем. А раз на исходном запросе проблема возникла - то вряд ли пятерка. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
alafin |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 12.4.2006 Репутация: нет Всего: 2 |
В таком случае тоже выдает ошибку #1248 - Every derived table must have its own alias Добавлено через 56 секунд У таблиц одинаковые кодировки --------------------
http://python.com.ua |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
alafin, прости, ввел в заблуждение
![]() ошибка значит "каждая вложенная таблица". т.е. у тебя во FROM сейчас просто в скобках подзапрос. безымянный. но он должен иметь свой псевдоним. вроде такого:
|
|||
|
||||
alafin |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 12.4.2006 Репутация: нет Всего: 2 |
skyboy, и так тоже не работает пишет
#1271 - Illegal mix of collations for operation 'UNION' Пробую на разных версиях MySQL: MySQL: 4.1.21 MySQL 5.0.45 --------------------
http://python.com.ua |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |