Візуальне пояснення різних типів об'єднання таблиць в MySQL

Візуальні діаграми є гарним прикладом використання об'днання таблиць в SQL, що може бути корисно для починаючих програмістів. Хоча, проводячи тестування, виясняється, що ці діаграми не зовсім збігаються з реальними результатами.

Але тут представлена концепція, тож давайте розберемось в ній. Припустимо, ми маємо дві таблиці Table A зліва і Table В справа. Кожну з них ми заповнимо 4 записами.

id
name
id
name
-- ---- -- ----
1
Pirate
1
Rutabaga
2
Monkey
2
Pirate
3
Ninja
3
Darth Vader
4
Spaghetti
4
Ninja

Давайте об'єднаємо ці таблиці кількома різними способами і побачимо як буде результат.
SELECT * FROM TableA
INNER JOIN TableB
ON TableA.name = TableB.name

id name id name
-- ---- -- ----
1 Pirate 2 Pirate
3 Ninja 4 Ninja

SELECT * FROM TableA
FULL OUTER JOIN TableB
ON TableA.name = TableB.name

id    name       id    name
--    ----       --    ----
1     Pirate     2     Pirate
2     Monkey     null  null
3     Ninja      4     Ninja
4     Spaghetti  null  null
null  null       1     Rutabaga       
null  null       3     Darth Vader
SELECT * FROM TableA
LEFT OUTER JOIN TableB
ON TableA.name = TableB.name

id  name       id    name
--  ----       --    ----
1   Pirate     2     Pirate
2   Monkey     null  null
3   Ninja      4     Ninja
4   Spaghetti  null  null
SELECT * FROM TableA
LEFT OUTER JOIN TableB
ON TableA.name = TableB.name
WHERE TableB.id IS null

id  name       id     name
--  ----       --     ----
2   Monkey     null   null
4   Spaghetti  null   null
SELECT * FROM TableA
FULL OUTER JOIN TableB
ON TableA.name = TableB.name
WHERE TableA.id IS null 
OR TableB.id IS null

id    name       id    name
--    ----       --    ----
2     Monkey     null  null
4     Spaghetti  null  null
null  null       1     Rutabaga
null  null       3     Darth Vader

http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html

14 травня 2011р.
переглядів: 931
Рейтинг: 4.3
додати коментар
Ваше ім'я
Ваш E-mail