2013-11-07 6 views

ответ

2

Запрос с соединением будет возвращать повторяющиеся копии name, если в ключе имеется несколько совпадений.

Два запроса не совпадают.

+0

испытания Вы это на двух тестовых таблиц и проанализировали результаты? – ModulusJoe

+0

@AcyclicTau. , , Я все время использую объединения. Вот как они себя ведут. –

+0

Извините, что комментарий был направлен на оригинальный плакат, а не на вас. – ModulusJoe

0

Если соотношение между таблицей A и таблицей B является взаимно-однозначным, то есть сказать «ключ» в таблице B также является первичным ключом и, следовательно, уникальным, как в таблице «A», то эти два являются равны.

Таблица A:

Key  Name 
    ----  -------------- 
    1  George 
    2  Lisa 
    3  Bill 

Таблица B:

Key 
    ---- 
    1 
    3 

Результат используя свой первый запрос был бы один ниже и так же, как ваш второй запрос:

Name 
    ------- 
    George 
    Lisa 
    Bill 

Однако, если взаимосвязь является «один ко многим», то есть одна запись Таблица A может содержать одну или несколько связанных записей в таблице B. И это означает, что «k ey 'в таблице B является внешним ключом, тогда два не равны.

Таблица B:

Key 
    ---- 
    1 
    2 
    3 
    1 
    3 

Результат используя свой первый запрос будет:

Name 
    ------- 
    George 
    George 
    Lisa 
    Bill 
    Bill 

Смотрите мой SQL Fiddle Demo

Смежные вопросы