#sql #join
#sql #Присоединиться
Вопрос:
Таблица A: (6 записей со значением ‘1’) 1 1 1 1 1 1
Таблица B: (2 записи со значением ‘1’) 1 1
Выберите * из TableA левое соединение TableB в TableA.col1 = TableB.col1 ?
Выберите * из TableB левое соединение TableA в TableB.col1 = TableA.col1?
Выберите * из таблицы внутреннего соединения TableB в TableA.col1 = TableB.col1?
Выберите * из таблицы полного внешнего соединения TableB в TableA.col1 = TableB.col1?
Комментарии:
1. Какой результат вы пытаетесь получить?
2. Попробуйте запустить их.
Ответ №1:
Для таких данных все запросы эквивалентны внутреннему соединению, потому что (левое и полное) внешние соединения касаются строк, существующих в одной таблице, а не в другой, что не в вашем случае.
Более того, внутренние соединения с одним и тем же повторяющимся значением фактически ведут себя как декартово произведение. Следовательно, результат равен 6 * 2 = 12 строкам значений 1,1
во всех случаях.