Дивлячись на приєднуйтесь до цих вихідних.
Я читав на "Приєднуйся" і побачив безліч комбінацій ПРИЄДНАЙТЕСЬ, ВЛІВО, ВПРАВО, ВНУТРІШНЬО, ПОВНО, ІННЕР. Я перевірив документи MSDN і, схоже, єдині дозволені комбінації є у формі:
< join_type > ::=
[ INNER | { { LEFT | RIGHT | FULL } [ OUTER] } ]
[ < join_hint > ]
JOIN
тож з цього, я думаю, ви можете отримати лише:
JOIN / INNER JOIN LEFT JOIN / LEFT OUTER JOIN RIGHT JOIN / RIGHT OUTER JOIN FULL JOIN / FULL OUTER JOIN
Крім того, зовнішній вигляд є необов'язковим ключовим словомВЛІТТЯ ВЛІТТЯ та НАЛІВ ВІДПОЛУЧАЙТЕ дійсно те саме. Це правильно? Яка різниця між JOIN та FULL OUTER JOIN? Я бачив ОСОБЛИВО в сценарії, але не зміг його зламати, тому що запит був трохи складним.
Відповіді:
10 за відповідь № 1http://www.codinghorror.com/blog/archives/000976.html
Має одне з найкращих пояснень, які я бачив.
4 для відповіді № 2
Існує лише три види приєднання: CROSS, INNER та OUTER.
- Хрест приєднується до повернення кожен можливе поєднання рядків з обох таблиць, і вони часто не використовуються.
- Внутрішня приєднується лише до туди, де повертаються рядки обидва таблиці відповідають умові приєднання.
- Зовнішні приєднання вибирають одну таблицю як "початкову" таблицю, і завжди будуть повертати всі рядки з цієї таблиці. Будь-який час, коли в іншій таблиці немає відповідності, надаються значення NULL.
У межах зовнішніх з'єднань (і тільки зовнішніх з'єднань) також є три підтипи: ЛІВО, ПРАВО та ПОВНО.
- Для лівих приєднань перша таблиця - це таблиця початку.
- Для Right приєднується 2-а таблиця - це таблиця початку.
- Для повної приєднання обидві таблиці є таблицями початківців.
Оскільки лівий, правий і повний застосовуються лише до зовнішніх приєднань, іноді ключове слово ВИХІД пропускається на користь просто вказати, який тип зовнішнього з'єднання (тобто просто "НАЛЕГЛО ПРИЄДНАЙТЕСЬ").
1 для відповіді № 3
Це всі дійсні синтаксиси, які можуть переходити між джерелами таблиці:
JOIN
INNER JOIN
LEFT JOIN
LEFT OUTER JOIN
RIGHT JOIN
RIGHT OUTER JOIN
FULL JOIN
FULL OUTER JOIN
Кожен вимагає наступного пункту ON.
Ви правильні, що ЗОВНІШНЬОГО не є обов'язковим, тому ПРАВИЛЬНИЙ ПРИЄДНАЙТЕ - це те саме, що ПРАВО ВІДХОДЖУЄТЬСЯ ПРИЄДНАЙТЕСЬ, а також ЛІВО та ПОВНО. Крім того, INNER є необов'язковим, якщо його немає, тому ПРИЄДНАЙТЕ так само, як INNER JOIN.
Існує також CROSS JOIN, який є тим же комою і не має пункту ON. Іншими словами,
FROM A CROSS JOIN B
і
FROM A,B
означають точно те саме.
Оператори таблиці JOIN і FULL OUTER JOIN зовсім не однакові. Джерело таблиці
FROM A JOIN B ON <condition>
містить лише рядки, для яких це правда. З іншого боку, джерело таблиці
FROM A FULL OUTER JOIN B ON <condition>
містить рядки, для яких це правда разом з усі додаткові рядки, які ви отримаєте або в лівому зовнішньому з'єднанні, або в ПРАВИМУ ПРИЄДНУЙСЯ, з тим самим пунктом ON.
1 для відповіді № 4
Здається, у вас більше комбінацій, ніж підтримується:
<join_type> ::=
[ INNER | { { LEFT | RIGHT | FULL } [ OUTER] } ]
[ <join_hint> ]
JOIN
Це говорить, що ви можете мати:
JOIN INNER JOIN
LEFT JOIN LEFT OUTER JOIN
RIGHT JOIN RIGHT OUTER JOIN
FULL JOIN FULL OUTER JOIN
Ключовим словом OUTER є необов’язковим, іншими словами. У повному стандарті SQL ви також можете мати ПРИРОДНИЙ ПРИЄДНАЙТЕСЬ або КРОВНИЙ ПРИЄДНАЙТЕСЬ. Ключове слово INNER також необов’язкове; звичайний "ПРИЄДНАЙТЕСЬ" - ВНУТРІШНЕ ПРИЄДНАННЯ.
Власне, форматування вашої відповіді призвело до того, що я думав, що ви "не зрозуміли належним чином; він запустив" ВНУТРІШНЕ ПРИЄДНАННЯ "з НАЛЯГОЮ ПРИЄДНАЙТЕСЬ (я виправлю це незабаром, якщо ніхто інший не має).
ЦІЛЬКА ПРИЄДНАННЯ кардинально відрізняється від рівнини(ВНУТРІШНЄ З'ЄДНАННЯ. INNER JOIN просто базується на заданому критерії (визначеному пунктом ON або користувачем). ПРИЄДНАННЯ ВЛЕВОГО СПІВ складається з рядків ВНУТРІШНЬОГО ПРИЄДНАННЯ плюс ті рядки з лівої таблиці, які не з'єднані з правою таблицею, розширеною з NULL для кожного стовпця в правій таблиці. Це іноді називають "лівим зовнішнім приростом". ПРАВИЛЬНЕ ВИХІДНЕ ПРИЄДНАННЯ повертає відчуття зовнішнього з'єднання (тому існує "правильний зовнішній приріст"). ПОВНИЙ ПРИЄДНАННЯ складається з об'єднання ВНУТРІШНЬОГО ПРИЄДНАННЯ та лівого зовнішнього збільшення та правого зовнішнього збільшення. Результат ПОВНОГО ПРИЄДНАННЯ не має первинного ключа, оскільки, як правило, в кожному стовпці є нулі.
0 для відповіді № 5
The Стаття Вікіпедії про SQL приєднатися цілком зрозуміло і має безліч прикладів.