powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выбрать и исключить
5 сообщений из 5, страница 1 из 1
Выбрать и исключить
    #38822194
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица вида:
авторid-------sender-------owner
и вторая
авторid-------person_id-------ignored_id
1---------------1-----------------3
2---------------1-----------------5

Нужно выбрать записи из первой по значению owner ,
при этом owner==person_id , а sender==ignored_id
и исключить записи, где встречаются ignored_id

Такое можно сделать в одном запросе?
...
Рейтинг: 0 / 0
Выбрать и исключить
    #38822204
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
т.о. если первая таблица будет иметь значения
авторid-------sender-------owner
1----------3---------------1
2----------2---------------1
3----------7---------------1
4----------5---------------1
5----------6---------------1
то нужно исключить строки где sender=3 и 5, т.е. результат
авторid-------sender-------owner
2----------2---------------1
3----------7---------------1
5----------6---------------1
...
Рейтинг: 0 / 0
Выбрать и исключить
    #38822291
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятнее не стало.
Такое впечатление, что Вы сами плохо понимаете, что нужно - и именно это мешает Вам составить запрос.
...
Рейтинг: 0 / 0
Выбрать и исключить
    #38822362
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хм, попробую так...

В первой таблице указаны отправитель-получатель.
Во второй, для любого получателя указаны те отправители, которых он игнорит, т.е. person_id-ignored_id (т.е. person_id==owner).

Нужно получить записи по определенному owner из первой.
Теперь нужно исключить из полученного те записи, которых наш owner игнорит - так понятнее?

Т.е. можно так: получаем все записи по owner из первой, и получаем список значений из второй таблицы значения которых не должны встречаться в первой. Теперь проходим по первому результату и исключаем те записи в которых ignored_id==sender. Но это два запроса и потом еще проход в программе.
...
Рейтинг: 0 / 0
Выбрать и исключить
    #38822372
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,

ну и что тут сложного, обычный антиджойн.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select t1.* from t1
left join (
 select /*distinct*/ ignored_id 
 from t2
 where person_id=:myowner
) q on t1.sender=q.ignored_id
where t1.owner=:myowner
 and q.ignored_id is null
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выбрать и исключить
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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