powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос с нулевыми значениями.
4 сообщений из 4, страница 1 из 1
Запрос с нулевыми значениями.
    #39267109
3gsxarakiri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Что-то не пойму как запрос правильно построить, если кто может, буду признателен за помощь.
Дело в том, что имеется список программ, на нем есть промо страницы(Транзитки\Лендинги). Нужно получить список всех программ с количеством промо страниц в нем, но загвоздка такая, что иногда, транзиток на программе нет, а я никак не придумал, как мне запросить чтобы даже такие случаи выводились, когда Лендинги > 1, а Транзитки = 0

Использовал этот запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT T1.offer_id, T1.offer_name, T1.Transit, T2.Landing
FROM
  (SELECT offer_id, offer_name, COUNT('page_name') AS Transit
   FROM soft_landings
   WHERE network_name = 'soft' and type = 'transit'
   GROUP BY offer_name, offer_id
   ) T1,
  (SELECT offer_id, offer_name, COUNT('page_name') AS Landing
   FROM soft_landings
   WHERE network_name = 'soft' and type = 'lands'
   GROUP BY offer_name, offer_id
  ) T2
WHERE T2.offer_id = T1.offer_id AND  T2.offer_name = T1.offer_name



Проблема, как я сказал выше, что если на программе(offer_id, offer_name) нет ни одной transit, то такая программа не попадет в выдачу. Таким образом, при выполнении этого запроса мне выдается резальтат 237 строк, хотя всего программ в базе 364

пробовал еще использовать UNION

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT offer_id, offer_name, COUNT('page_name') AS Transit
FROM soft_landings
WHERE network_name = 'soft' and type = 'transit'
GROUP BY offer_name, offer_id
   
UNION

SELECT offer_id, offer_name, COUNT('page_name') AS Landing
FROM soft_landings
WHERE network_name = 'soft' and type = 'lands'
GROUP BY offer_name, offer_id



Так он вообще лепит всю выдачу в 1 столбец, создавая 500+ строк.
а нужно то всего, чтобы результат был таков

id программы ---- название программы -------- 12312(лендинги) ------ 23232(транзитки)
id программы ---- название программы -------- 12312(лендинги) ------ 0(транзитки)

Буду очень признателен за помощь, так как уже почти сутки голову себе ломаю :(
...
Рейтинг: 0 / 0
Запрос с нулевыми значениями.
    #39267118
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3gsxarakiri,

left join
...
Рейтинг: 0 / 0
Запрос с нулевыми значениями.
    #39267154
3gsxarakiri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

left join? Если честно. никогда не сталкивался со случаем его применения(нуб). Буду оочень признателен за привидения примера его работы с 1 таблицей(не обязательно на моем примере), так как сейчас гуглил и как правило везде примеры его работы с 2 и более таблицами, а у меня одна :(
...
Рейтинг: 0 / 0
Запрос с нулевыми значениями.
    #39267227
Близнец1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3gsxarakiri,
Попробуй так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT T1.offer_id, T1.offer_name, T1.Transit, T2.Landing
FROM
  (SELECT offer_id, offer_name, COUNT('page_name') AS Transit
   FROM soft_landings
   WHERE network_name = 'soft' and type = 'transit'
   GROUP BY offer_name, offer_id
   ) T1 
LEFT JOIN  
  (SELECT offer_id, offer_name, COUNT('page_name') AS Landing
   FROM soft_landings
   WHERE network_name = 'soft' and type = 'lands'
   GROUP BY offer_name, offer_id
  ) T2
ON 
 T2.offer_id = T1.offer_id AND  T2.offer_name = T1.offer_name
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос с нулевыми значениями.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]