Візуальне пояснення різних типів об'єднання таблиць в 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
Ваше ім'я
Ваш E-mail


























