SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 07.12.2011 11:15:07

Electron
Участник
Откуда: Москва
Зарегистрирован: 07.12.2011
Сообщений: 8

Объединение двух запросов в один (подзапрос)

Помогите, пожалуйста, объединить этот:


SELECT *
FROM table1, table2
WHERE table1.id = table2.id
ORDER BY col DESC
 

и этот:

SELECT *
FROM table1
LIMIT 1 , 5
 

запросы в один подзапрос, на подобии:

SELECT *
FROM table1, table2
WHERE table1.id = table2.id
IN (
    SELECT *
    FROM table1
    LIMIT 1 , 5
)
ORDER BY col DESC
 

В данном случае выдаётся ошибка:
This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
Это означает, что версия моего MySQL (в наборе Denwer 3) не поддерживает подзапросы или всё же дело в кривости самого запроса?

Отредактированно Electron (07.12.2011 11:17:15)

Неактивен

 

#2 07.12.2011 22:31:05

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

Re: Объединение двух запросов в один (подзапрос)

Может вам просто нужно

SELECT *
FROM table1, table2
WHERE table1.id = table2.id
ORDER BY col DESC LIMIT 1 , 5


И скорее LIMIT 0 , 5

Либо изложите что именно хотите получить.

Неактивен

 

#3 08.12.2011 15:22:17

Electron
Участник
Откуда: Москва
Зарегистрирован: 07.12.2011
Сообщений: 8

Re: Объединение двух запросов в один (подзапрос)

evgeny, угу, спасибо, оказывается и подзапрос даже не нужен был, к сожалению я уже сделал иначе: на PHP вынес оба запроса в два массива, затем их склеил, короче лишнего наделал... smile

Отредактированно Electron (08.12.2011 15:25:02)

Неактивен

 

#4 09.12.2011 15:52:45

Electron
Участник
Откуда: Москва
Зарегистрирован: 07.12.2011
Сообщений: 8

Re: Объединение двух запросов в один (подзапрос)

Можно такой вопрос: возможно ли в MySQL сделать какой-нибудь автоматический счётчик... не знаю как это назвать, в общем у меня есть несколько записей, все они нумеруются по обычному счётчику, но если одну запись удалить, то счётчик следующей не изменится, а мне нужен такой, который бы менялся (чтобы нумерация оставалась правильной), есть ли какая-нибудь замена обычного счётчика, или это  как-то можно проделать с обычным? Я не хочу заменить тот счётчик, а добавить новую графу в таблице с таким автоматическим счётчиком, для вывода нумерации сообщений пользователей в гостевой книге, циклом ничего не смог сделать, так как в записях идёт постраничная разбивка smile

Отредактированно Electron (09.12.2011 15:56:33)

Неактивен

 

#5 10.12.2011 12:43:29

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

Re: Объединение двух запросов в один (подзапрос)

Порядковый номер можно выводить так:

SELECT (@pos:=@pos+1) pos,table1.*,table2.*
FROM table1, table2,(select @pos:=0) pos
WHERE table1.id = table2.id
ORDER BY col DESC LIMIT 0 , 5

Неактивен

 

Board footer

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