2014-09-23 3 views
3

Say У меня есть две таблицы, таблицы 1 и таблицы 2. Таблица 1 имеет один-ко-многим с таблицей 2.SQL один ко многим с внутренним соединением

Если таблица 1 моя базовая таблица (SELECT something FROM table1) с внутреннее соединение к таблице 2, то какие значения из таблицы два будут возвращены при выборе любых полей из таблицы 2?

  • Первое значение возвращено? Как с функцией vlookup от excel?
  • Последнее значение для соединения?

E.G.

Table1 
    Account ID |  email  
     1  | [email protected] 
     2  | [email protected] 
     3  | [email protected] 

Table 2 
Subscription ID | Account ID |  Email  |  Created 
    100   |  1  | [email protected] | 2014-01-01 
    102   |  2  | [email protected] | 2014-02-02 
    103   |  1  | [email protected] | 2014-03-03 

Так что, если я побежал запрос, чтобы выбрать дату формирования учетной записи на основе подписки, я мог бы просто запустить SELECT min(Created), чтобы получить первый.

Но каково поведение по умолчанию? Если моя левая таблица - таблица 1, соединенная с таблицей 2 идентификатора учетной записи, и я выбираю созданное поле, которое будет возвращено? 2014-01-01 или 2014-03-03?

ответ

6

Вы бы вернули обе записи. Когда вы найдете JOIN таблицы, вы получите все записи, которые отвечают критериям JOIN и WHERE статей и любых статей GROUP BY/HAVING. Если вы хотите, чтобы только один вернулся, вам нужно написать код, чтобы указать, какой из них вы хотите.

+0

Обе записи. Большое спасибо, что я даже не подумал об этом. –

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