Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Составление запроса 
V
    Опции темы
FelikZ
Дата 12.8.2011, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый Маразматик
**


Профиль
Группа: Участник
Сообщений: 380
Регистрация: 1.12.2006
Где: Vault 13

Репутация: нет
Всего: 5



Есть две таблицы (t1, t2). В первой таблице уникальные ID (допустим товаров), во второй таблице ID этих же товаров, но могут повторятся.

Нужно выбрать следующие данные:
1. сколько ID из t1 не попали в t2
2. сколько ID из t1 попали в t2 один раз
3. сколько ID из t1 попали в t2 два и более раз

Как выбрать? smile Объем данных будет большой, так что выслушал бы советы по оптимизации. (если что скрипт будет на php)


--------------------
user posted image
PM WWW ICQ Skype   Вверх
Zloxa
Дата 12.8.2011, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Код

select case,count(*) cnt
from (
      select case when count(t2.id) = 0 then 'нет'
                  when count(t2.id) = 1 then 'один'
                  when count(t2.id) > 1 then 'более одного'
             end as case
      from t1
      left join t2 on t1.id = t2.id
      group by t1.id
      ) s 
group by case


Это сообщение отредактировал(а) Zloxa - 13.8.2011, 10:26


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
rodnover
Дата 12.8.2011, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 7.4.2009

Репутация: 1
Всего: 10



Не попал
Код

select distinct T1.ID
from T1
left join T2 on T2.ID = T1.ID
where T2.ID is null

один раз
Код

select T1.ID
from T1
inner join T2 on T2.ID = T1.ID
group by T1.ID
having count(T2.ID) = 1

много раз
Код

select T1.ID
from T1
inner join T2 on T2.ID = T1.ID
group by T1.ID
having count(T2.ID) > 1


Это сообщение отредактировал(а) rodnover - 12.8.2011, 17:08
PM MAIL   Вверх
FelikZ
Дата 15.8.2011, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый Маразматик
**


Профиль
Группа: Участник
Сообщений: 380
Регистрация: 1.12.2006
Где: Vault 13

Репутация: нет
Всего: 5



Спасибо большое! smile 


--------------------
user posted image
PM WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0640 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.