powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос на выборку пользователей состоящих в диалогах, где состою я
9 сообщений из 9, страница 1 из 1
Запрос на выборку пользователей состоящих в диалогах, где состою я
    #39756262
Alex888819
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть два диалога в таблице dialog_users. 28 и 29. В обоих диалогах состою я под user_id=3. Как мне сделать запрос в базу, чтобы вытащить моих собеседников(их user_id) из двух диалогов?
...
Рейтинг: 0 / 0
Запрос на выборку пользователей состоящих в диалогах, где состою я
    #39756265
Dmi_tri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что из себя представляет сущность "dialog"? Думаю, с этого нужно было начать
...
Рейтинг: 0 / 0
Запрос на выборку пользователей состоящих в диалогах, где состою я
    #39756266
Alex888819
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmi_tri,

У меня три таблицы.
messages (id, message, dialog_id, user_id, created_at, updated_at),
dialogs (id, name, created_at, updated_at),
dialog_users (id, dialog_id, user_id, created_at, updated_at)
...
Рейтинг: 0 / 0
Запрос на выборку пользователей состоящих в диалогах, где состою я
    #39756267
Alex888819
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmi_tri,

dialog_id - это id из таблицы dialogs.
...
Рейтинг: 0 / 0
Запрос на выборку пользователей состоящих в диалогах, где состою я
    #39756270
Dmi_tri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужны собеседники, которые входят одновременно и в 28 и 29 диалог?
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT DISTINCT user_id
FROM messages
WHERE dialog_id=28
INTERSECT
SELECT DISTINCT user_id
FROM messages
WHERE dialog_id=29


Либо хотя бы в один из них?
Код: sql
1.
2.
3.
SELECT DISTINCT user_id
FROM messages
WHERE dialog_id=28 OR dialog_id=29
...
Рейтинг: 0 / 0
Запрос на выборку пользователей состоящих в диалогах, где состою я
    #39756271
Alex888819
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmi_tri,
Однако заранее я не могу знать id диалога, мне нужно из всех имеющихся диалогов получить id пользователей состоящих в тех диалогах, в которых состою я.
...
Рейтинг: 0 / 0
Запрос на выборку пользователей состоящих в диалогах, где состою я
    #39756276
Dmi_tri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
id юзера-то известно?
Код: sql
1.
2.
3.
SELECT user_id
FROM messages
WHERE dialog_id=(SELECT dialog_id FROM dialog_users WHERE user_id=3)
...
Рейтинг: 0 / 0
Запрос на выборку пользователей состоящих в диалогах, где состою я
    #39756375
Alex888819
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmi_tri,

Запрос, который Вы предложили вернул ошибку:

"SQLSTATE[21000]: Cardinality violation: 1242 Subquery returns more than 1 row (SQL: SELECT user_id FROM messages WHERE dialog_id=(SELECT dialog_id FROM dialog_users WHERE user_id='3'))"

Я знаю id авторизованного юзера, в таблице, приведенной выше, он равен 3.
...
Рейтинг: 0 / 0
Запрос на выборку пользователей состоящих в диалогах, где состою я
    #39756384
lookat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmi_triid юзера-то известно?
Код: sql
1.
2.
3.
SELECT user_id
FROM messages
WHERE dialog_id=(SELECT dialog_id FROM dialog_users WHERE user_id=3)



Наверное так:

Код: sql
1.
2.
3.
4.
5.
6.
SELECT user_id
FROM messages
WHERE dialog_id IN (
  SELECT dialog_id 
  FROM dialog_users 
  WHERE user_id=3  ) 
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос на выборку пользователей состоящих в диалогах, где состою я
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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