Подтвердить что ты не робот

Присоединиться к нескольким столбцам

У меня есть две таблицы (таблица 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.

4b9b3361

Ответ 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