SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 27.12.2010 13:35:45

tazododu
Завсегдатай
Зарегистрирован: 24.09.2010
Сообщений: 51

UNION - обращение с одно запроса к результатам другого

Добрый день!
Подскажите, возможно ли при работе с UNION с одного подзапроса обращаться к результатам другого?
Пробывал ставить

(.....) AS `tbl` UNION (.... WHERE `tbl2`.`tel` != `tbl`.`tel`) AS `tbl2`
(.....) `tbl` UNION (.... WHERE `tbl2`.`tel` != `tbl`.`tel`) `tbl2`

не получилось, а очень нужно!!

Отредактированно tazododu (27.12.2010 13:36:24)

Неактивен

 

#2 27.12.2010 15:12:16

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

Re: UNION - обращение с одно запроса к результатам другого

Нет, так делать нельзя.

Неактивен

 

#3 27.12.2010 16:38:09

tazododu
Завсегдатай
Зарегистрирован: 24.09.2010
Сообщений: 51

Re: UNION - обращение с одно запроса к результатам другого

плохо...
использую сортировку по юнионам

(SELECT 1 AS sort_col, col1a, col1b, ... FROM t1)
UNION
(SELECT 2, col2a, col2b, ... FROM t2) ORDER BY sort_col, col1a;
 

и в итоге получаю не дистинктный результат

Неактивен

 

#4 27.12.2010 17:27:56

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

Re: UNION - обращение с одно запроса к результатам другого

Боюсь, что тогда прийдется группировать явно. В любом случае, выборка
будет ужасной. А какой смысл держать одинаковые данные в двух таблицах?

Неактивен

 

#5 28.12.2010 09:42:16

tazododu
Завсегдатай
Зарегистрирован: 24.09.2010
Сообщений: 51

Re: UNION - обращение с одно запроса к результатам другого

Та не, там данные не дублируются в разных таблицах. У меня поиск по разным таблицам. Причем важен порядок вывода поиска и кол-во найденных строк
1. поиск в названиях(товаров)
2. поиск во всяких других полях товаров
3. поиск в описаниях фирмы
Вот эти результаты я вывожу в таком порядке. Проблема возникла когда строка поиска может быть и в названии товара ив описаниях. Тогда я получаю неверное кол-во общих найденных. Т.к. из-за сортировки UNION уже не дистинктные результаты мне отдает. Вот я и думал в каждой следующей квере проверять чтобы не было уже такого  результата поиска в предыдущей.

Неактивен

 

#6 28.12.2010 13:30:56

tazododu
Завсегдатай
Зарегистрирован: 24.09.2010
Сообщений: 51

Re: UNION - обращение с одно запроса к результатам другого

И вообще, у меня поиск по двум таблицам, правильно ли я делаю разбив на 2 квери поиск использую UNOIN?

Неактивен

 

#7 28.12.2010 16:09:58

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

Re: UNION - обращение с одно запроса к результатам другого

Считайте правильно количество найденных и используйте UNION ALL?

Неактивен

 

Board footer

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