Присоединиться к нескольким столбцам
У меня есть две таблицы (таблица A и таблица B), которые я хочу объединить в нескольких столбцах в обеих таблицах.
Table A
Col1 Col2
================
A11 A21
A22 A22
A33 A23
Table B
Col1 Col2 Val
=================
B11 B21 1
B12 B22 2
B13 B23 3
Я хочу, чтобы обе колонки в таблице А присоединились к любому из Col1 и Col2 в таблице B, чтобы получить Val.
Ответы
Ответ 1
Согласитесь, нет совпадений в вашем примере.
Если вы имеете в виду оба столбца на одном из них, то нужен такой запрос или нужно пересмотреть структуру данных.
Select TableA.Col1, TableA.Col2, TableB.Val
FROM TableA
INNER JOIN TableB
ON TableA.Col1 = TableB.Col1 OR TableA.Col2 = TableB.Col2
OR TableA.Col2 = TableB.Col1 OR TableA.Col1 = TableB.Col2
Ответ 2
Другие запросы основываются на любом ОДНОМ из условий, которые будут определены, и он вернет запись... если вы хотите убедиться, что столбики BOTH таблицы A сопоставлены, вам нужно будет что-то сделать...
select
tA.Col1,
tA.Col2,
tB.Val
from
TableA tA
join TableB tB
on ( tA.Col1 = tB.Col1 OR tA.Col1 = tB.Col2 )
AND ( tA.Col2 = tB.Col1 OR tA.Col2 = tB.Col2 )
Ответ 3
Ниже приведена структура SQL, которую вы можете написать. Вы можете сделать несколько объединений с помощью "И" или "ИЛИ".
Select TableA.Col1, TableA.Col2, TableB.Val
FROM TableA,
INNER JOIN TableB
ON TableA.Col1 = TableB.Col1 OR TableA.Col2 = TableB.Col2
Ответ 4
tableB.col1 = tableA.col1
OR tableB.col2 = tableA.col1
OR tableB.col1 = tableA.col2
OR tableB.col1 = tableA.col2