usascha
Новичок
Выбор всего лишь из одной таблицы
Здрасте всем.
Все - я сдался! Уже раз сто переделал запрос, но сделать выборку никак не могу.
Задача: выбрать из таблицы все записи, где publication_amount = 0 или вообще еще не существует.
Таблица, которая является промежуточной для 3-х других, может содержать следующие данные
Так вот, задача выбрать все те subscriber_id, у которых все publication_amount = 0 или поскольку publication_id нет, то и publication_amount тоже нет. Если хоть одно значение publication_amount > 0, ТО такой subscriber_id выбирать не надо.
Не знаю имеет ли смысл приводить любой из вариантов моих запросов, они все не годятся, но на момент написания поста мучил такой вариант:
Этот запрос вешает сервер на очень долгое время и броузер не дожидается ответа.
Здрасте всем.
Все - я сдался! Уже раз сто переделал запрос, но сделать выборку никак не могу.
Задача: выбрать из таблицы все записи, где publication_amount = 0 или вообще еще не существует.
Таблица, которая является промежуточной для 3-х других, может содержать следующие данные
Код:
l_id | subscriber_id | publication_id | period | publication_amount
1 1 1 01 0
2 1 2 01 0
3 1 3 01 0
4 1 4 01 0
5 1 5 01 0
6 2 1 00 1
7 2 3 00 4
8 2 4 99 6
9 3 2 02 0
10 3 5 02 0
Так вот, задача выбрать все те subscriber_id, у которых все publication_amount = 0 или поскольку publication_id нет, то и publication_amount тоже нет. Если хоть одно значение publication_amount > 0, ТО такой subscriber_id выбирать не надо.
Не знаю имеет ли смысл приводить любой из вариантов моих запросов, они все не годятся, но на момент написания поста мучил такой вариант:
Код:
SELECT s.*, p.*, r.* , COUNT(DISTINCT l.publication_amount) AS l_pam, l.*
FROM regions r, subscriber s, list l
LEFT JOIN publication p ON p.p_id = l.publication_id
WHERE l.subscriber_id = s.id
AND s.oblast = r.reg_code
AND l.subscriber_id NOT IN
(
SELECT subscriber_id
FROM list
WHERE publication_amount !=0
OR publication_amount !=''
GROUP BY period, publication_id
)
GROUP BY l.period, l.publication_amount, l.subscriber_id
ORDER BY s.subscriber_name ASC, r.reg_name ASC