MySQL WHERE условие ссылка на другую таблицу - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть две таблицы. Таблица A содержит (среди прочего) два столбца X1 и Y1. Таблица B содержит (среди прочего) X2 и Y2.

Я пытаюсь создать запрос SELECT для таблицы A, в которой возвращаются только элементы, если X1, Y1 соответствуют записи X2, Y2 в таблице B, но я немного борюсь с этим.

Я пытаюсь что-то вроде

SELECT * FROM A WHERE CONCAT(X1, X2) IN (SELECT CONCAT(X2, Y2) FROM B)

Кажется, это работает, но я не могу удивиться, если это правильно. Должен ли я, возможно, использовать какое-то соединение на столах?

1 Ответ

0 голосов
/ 27 апреля 2020
SELECT A.*
FROM A
JOIN B ON (A.X1, A.Y1) = (B.X2, B.Y2)

или

SELECT A.*
FROM A
JOIN B ON A.X1 = B.X2
      AND A.Y1 = B.Y2

Если B(X2, Y2) не является уникальным, для удаления дубликатов требуется дополнительный DISTINCT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...