Нужен правильный SQL

Zahar

Новичок
Нужен правильный SQL

Мне нужно выбрать из таблицы которая вспомогательная для создания связи многие ко многим id.
Совпадений должно быть n, то есть если я получаю записи то мне нужно только та которая выбрана n раз.

Проблема состоит в том что нельзя использовать SELECT * FROM WHERE IN (SELECT *);

Я пишу так
SELECT *, count(table1.id) as counter FROM table1 left join table2 on table1.id=table2.id2 where () order by table1.id having counter=n

я думал будет считать по группам а counter выводит вообще записи counter=n даже если они подподают на запрос
 

.::PhoenikS::.

Новичок
Не совсем понятно, но тем не менее...
Попробуй сделать декартово произведение 2-х таблиц и потом выбрать оттуда то, что нужно

Если не получится одним запросом, создай временную HEAP таблицу, залей даннуе туда, а оттуда сделай селект, хотя по моим прикидкам можно обойтись GROUP BY и HAVING раз вложенный запрос не допускается.

Если неправ, поясни конкретнее задачу
 

Alexandre

PHPПенсионер
Zahar Проблема не в тебе, а в MySQL, который не поддерживает стандарт ANSI SQL'92 в свободнораспространяемой версии. то биш нельзя писать нормальных запросов.

Выход 1 - тяни все в клиент, там выбирай и сортируй.

PS. а может последнее время, частое использование Хранимых процедур и правильно написанных запросов меня разучило нетривиально мыслить
 

Demiurg

Guest
Alexandre
это вполне делается одним запросом. Проблема, как раз, в человеке, который не может четко описать проблему.
 

Alexandre

PHPПенсионер
Zahar выложи структуру таблиц и опиши конкретнее задачу.

-~{}~ 01.10.04 17:53:

Если не получится одним запросом, создай временную HEAP таблицу, залей даннуе туда,
Это ни есть хорошо, а если одновременно два запроса будут...
Для большей уверенности надо создавать HEAP таблицу с уникальным именем и по окончанию транзакции ее грохоть.
 

.::PhoenikS::.

Новичок
Originally posted by Alexandre
Это ни есть хорошо, а если одновременно два запроса будут...
Для большей уверенности надо создавать HEAP таблицу с уникальным именем и по окончанию транзакции ее грохоть. [/B]
Предлагаю дождаться просто задачи и посмотреть, а так гадания на свопе получаются... Да и таблица ему похоже нужна не с уникальным ключиком...
 

Zahar

Новичок
Автор оригинала: .::phoenikS::.
Предлагаю дождаться просто задачи и посмотреть, а так гадания на свопе получаются... Да и таблица ему похоже нужна не с уникальным ключиком...
ВЫ ВСЕ ПРАВЫ надо біло использовать HAVING только знак =<>в том или ином случае менять.
 

ForJest

- свежая кровь
Zahar
Называй темы более информативно впредь, пожалуйста.
Запрос не считает по группам. Или там having работает не так, как ожидалось.
 
Сверху