powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выбрать из двух столбцов записи, не совпадающие со значением столбца другой таблицы
11 сообщений из 11, страница 1 из 1
Выбрать из двух столбцов записи, не совпадающие со значением столбца другой таблицы
    #39750533
Ann_no
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброй ночи, дорогие эксперты. Дано три таблицы, если упростить, в одной лежит ID, с которым надо сравнивать другие значения.
Во второй Conversation ID, SenderID, UserID1 и UserID2. Какой-то один из UserID1 или UserID2 совпадает с ID из первой таблицы.
В третьей два столбца: Conversation ID и SenderID, она имеет вид, например
1 13
1 14
2 14
2 15
Где 1 и 2 это Conversation ID
Надо используя эти данные выбрать UserID1 или UserID2, который не совпадает с ID. Буду безмерно благодарна за любые идеи. Честно. Я уже очень в отчаянии.
...
Рейтинг: 0 / 0
Выбрать из двух столбцов записи, не совпадающие со значением столбца другой таблицы
    #39750534
Ann_no
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините, да, это должен быть один столбец в итоге, со всеми не совпадающими с ID значениями.
...
Рейтинг: 0 / 0
Выбрать из двух столбцов записи, не совпадающие со значением столбца другой таблицы
    #39750561
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ann_no,

Приведите пример исходных данных и желаемого результата на их основе.
...
Рейтинг: 0 / 0
Выбрать из двух столбцов записи, не совпадающие со значением столбца другой таблицы
    #39750571
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ann_noКакой-то один из UserID1 или UserID2 совпадает с ID из первой таблицы.Надо ли это понимать так, что второй ГАРАНТИРОВАННО в первой таблице ОТСУТСТВУЕТ?

Ann_noГде 1 и 2 это Conversation IDА возможны ли иные значения в этом поле? А во второй таблице значение одноимённого поля тоже ограничено только этими двумя значениями?

Ann_noвыбрать UserID1 или UserID2, который не совпадает с IDТретья таблица тут не нужна чуть более чем полностью. Да и запрос для ИМЕННО ЭТОЙ задачи почти тривиален:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT 
FROM (SELECT UserID1 ID
      FROM table2
      UNION
      SELECT UserID2
      FROM table2) t2
LEFT JOIN table1 t1 ON t2.ID = t1.ID
WHERE t1.ID IS NULL
...
Рейтинг: 0 / 0
Выбрать из двух столбцов записи, не совпадающие со значением столбца другой таблицы
    #39750572
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT t2.ID
FROM (SELECT UserID1 ID
      FROM table2
      UNION
      SELECT UserID2
      FROM table2) t2
LEFT JOIN table1 t1 ON t2.ID = t1.ID
WHERE t1.ID IS NULL
...
Рейтинг: 0 / 0
Выбрать из двух столбцов записи, не совпадающие со значением столбца другой таблицы
    #39750705
Ann_no
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaAnn_noКакой-то один из UserID1 или UserID2 совпадает с ID из первой таблицы.Надо ли это понимать так, что второй ГАРАНТИРОВАННО в первой таблице ОТСУТСТВУЕТ?

В данном случае, да, в первой таблице вообще только одна запись. Всегда.

AkinaAnn_noГде 1 и 2 это Conversation IDА возможны ли иные значения в этом поле? А во второй таблице значение одноимённого поля тоже ограничено только этими двумя значениями?

Да, любые, но всегда парные.

AkinaAnn_noвыбрать UserID1 или UserID2, который не совпадает с IDТретья таблица тут не нужна чуть более чем полностью. Да и запрос для ИМЕННО ЭТОЙ задачи почти тривиален:

Спасибо! Не догадалась именно эти столбцы съюнионить. Догадки о ненужности третьей таблицы меня посещали. Задача, вообще, сложнее, и таблиц там побольше. Я туда вот этот запрос встроила и получила то что надо, согласна что не сложный в целом.

Akina
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT t2.ID
FROM (SELECT UserID1 ID
      FROM table2
      UNION
      SELECT UserID2
      FROM table2) t2
LEFT JOIN table1 t1 ON t2.ID = t1.ID
WHERE t1.ID IS NULL



С этими же данными есть еще задача, решается вроде аналогично. Сначала сама попробую; не получится - напишу.
...
Рейтинг: 0 / 0
Выбрать из двух столбцов записи, не совпадающие со значением столбца другой таблицы
    #39750902
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaПардон,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT t2.ID
FROM (SELECT UserID1 ID
      FROM table2
      UNION
      SELECT UserID2
      FROM table2) t2
LEFT JOIN table1 t1 ON t2.ID = t1.ID
WHERE t1.ID IS NULL


а вот если бы это был пж, оставили бы подзапрос, или WITH, или ещё что-то?
...
Рейтинг: 0 / 0
Выбрать из двух столбцов записи, не совпадающие со значением столбца другой таблицы
    #39750931
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудуха вот если бы это был пжА при чём тут господин ПэЖэ?
...
Рейтинг: 0 / 0
Выбрать из двух столбцов записи, не совпадающие со значением столбца другой таблицы
    #39750953
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akinaполудуха вот если бы это был пжА при чём тут господин ПэЖэ?
ну в мускуле же нет WITH
...
Рейтинг: 0 / 0
Выбрать из двух столбцов записи, не совпадающие со значением столбца другой таблицы
    #39751038
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухну в мускуле же нет WITHУпс... а мужики-то не знают...

WITH Syntax (Common Table Expressions)
...
Рейтинг: 0 / 0
Выбрать из двух столбцов записи, не совпадающие со значением столбца другой таблицы
    #39751064
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а, всё-таки сподобились, ок
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выбрать из двух столбцов записи, не совпадающие со значением столбца другой таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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