SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 28.07.2011 21:01:29

вал
Участник
Зарегистрирован: 28.07.2011
Сообщений: 5

select из нескольких tables

Доброго времени суток!

Мне нужно получить имена пользователей с максимальным количеством отгрузок.
Для одной таблицы все работает отлично:
SELECT *, count(*) as n FROM dvd WHERE upload NOT IN ( 'ааа', 'ббб' '...') group by upload HAVING n>0 ORDER BY n DESC LIMIT 8

У меня есть другие таблицы с такой же структурой (знаю - плохой дизайн)

Нужно подключить поиск по ним так же, пробовал:

SELECT *, count(*) as n FROM dvd WHERE upload NOT IN ('ааа', 'ббб' '...') UNION  SELECT *, count(*) as n FROM vhs WHERE upload NOT IN ('ааа', 'ббб' '...') group by upload HAVING n>0 ORDER BY n DESC LIMIT 8

Получаю ошибку синтаксиса.

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

Вал.

Неактивен

 

#2 28.07.2011 21:44:39

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

Re: select из нескольких tables

http://dev.mysql.com/doc/refman/5.1/en/union.html

To use an ORDER BY or LIMIT clause to sort or limit the entire UNION result, parenthesize the individual SELECT statements and place the ORDER BY or LIMIT after the last one. The following example uses both clauses:

(SELECT a FROM t1 WHERE a=10 AND B=1)
UNION
(SELECT a FROM t2 WHERE a=11 AND B=2)
ORDER BY a LIMIT 10;

Неактивен

 

Board footer

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