Advertisement
andrejic89

MySQL 6/8

Mar 27th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 9.14 KB | None | 0 0
  1. - obican (inner) join
  2. SELECT customer.first_name, customer.last_name, address.address
  3. FROM customer
  4. JOIN address
  5. ON address.address_id = customer.address_id
  6.  
  7. +-------------+--------------+----------------------------------------+
  8. | first_name  | last_name    | address                                |
  9. +-------------+--------------+----------------------------------------+
  10. | MARY        | SMITH        | 1913 Hanoi Way                         |
  11. | PATRICIA    | JOHNSON      | 1121 Loja Avenue                       |
  12. | LINDA       | WILLIAMS     | 692 Joliet Street                      |
  13. | BARBARA     | JONES        | 1566 Inegl Manor                       |
  14. | ELIZABETH   | BROWN        | 53 Idfu Parkway                        |
  15. | JENNIFER    | DAVIS        | 1795 Santiago de Compostela Way        |
  16. | MARIA       | MILLER       | 900 Santiago de Compostela Parkway     |
  17.  
  18.  
  19. Inner Join je zapravo Join koji smo videli na prethodnom primeru. Takoreći,
  20. potpuno identičan efekat ima korišćenje ključne reči JOIN i INNER JOIN, i u oba
  21. slučaja biće selektovani redovi koji za definisane kolone imaju vrednosti u obe
  22. tabele. Ovo znači da, ako govorimo hipotetički, ukoliko neki od naših mušterija
  23. nemaju unetu adresu, oni neće biti prikazani u rezultatima.
  24.  
  25. ------------------------------------------------------------------------
  26.  
  27. - left join
  28. mysql> SELECT customer.first_name, customer.last_name, address.address, address.district, address.postal_code FROM customer LEFT JOIN address ON address.address_id = customer.address_id limit 10;
  29. +------------+-----------+------------------------------------+----------------+-------------+
  30. | first_name | last_name | address                            | district       | postal_code |
  31. +------------+-----------+------------------------------------+----------------+-------------+
  32. |            | SMITH     | 1913 Hanoi Way                     | Nagasaki       | NULL        |
  33. | PATRICIA   | JOHNSON   | 1121 Loja Avenue                   | California     | 17886       |
  34. | LINDA      | WILLIAMS  | 692 Joliet Street                  | Attika         | 83579       |
  35. | BARBARA    | JONES     | 1566 Inegl Manor                   | Mandalay       | 53561       |
  36. | ELIZABETH  | BROWN     | 53 Idfu Parkway                    | Nantou         | 42399       |
  37. | JENNIFER   | DAVIS     | 1795 Santiago de Compostela Way    | Texas          | 18743       |
  38. | MARIA      | MILLER    | 900 Santiago de Compostela Parkway | Central Serbia | 93896       |
  39. | SUSAN      | WILSON    | 478 Joliet Way                     | Hamilton       | 77948       |
  40. | MARGARET   | MOORE     | 613 Korolev Drive                  | Masqat         | 45844       |
  41. | DOROTHY    | TAYLOR    | 1531 Sal Drive                     | Esfahan        | 53628       |
  42. +------------+-----------+------------------------------------+----------------+-------------+
  43. 10 rows in set (0,00 sec)
  44.  
  45.  
  46. Spajanje tabela definisano LEFT JOIN-om vratiće sve zapise iz leve tabele (tabele
  47. A), pa čak i ako neki od zapisa za tražene kolone nema vrednost
  48.  
  49. ------------------------------------------------------------------------
  50.  
  51. - right join
  52. mysql> SELECT customer.first_name, customer.last_name, address.address, address.district, address.postal_code FROM customer RIGHT JOIN address ON address.address_id = customer.address_id limit 10;
  53. +------------+-----------+---------------------------------+------------+-------------+
  54. | first_name | last_name | address                         | district   | postal_code |
  55. +------------+-----------+---------------------------------+------------+-------------+
  56. | NULL       | NULL      | 47 MySakila Drive               | Alberta    | NULL        |
  57. | NULL       | NULL      | 28 MySQL Boulevard              | QLD        |             |
  58. | NULL       | NULL      | 23 Workhaven Lane               | Alberta    |             |
  59. | NULL       | NULL      | 1411 Lillydale Drive            | QLD        |             |
  60. |            | SMITH     | 1913 Hanoi Way                  | Nagasaki   | NULL        |
  61. | PATRICIA   | JOHNSON   | 1121 Loja Avenue                | California | 17886       |
  62. | LINDA      | WILLIAMS  | 692 Joliet Street               | Attika     | 83579       |
  63. | BARBARA    | JONES     | 1566 Inegl Manor                | Mandalay   | 53561       |
  64. | ELIZABETH  | BROWN     | 53 Idfu Parkway                 | Nantou     | 42399       |
  65. | JENNIFER   | DAVIS     | 1795 Santiago de Compostela Way | Texas      | 18743       |
  66. +------------+-----------+---------------------------------+------------+-------------+
  67. 10 rows in set (0,00 sec)
  68.  
  69.  
  70.  
  71. Slično kao kod prethodnog JOIN-a, sa RIGHT JOIN-om
  72. dobićemo sve zapise iz desne tabele (tabele B), i samo one
  73. koji imaju vrednosti za definisane kolone iz tabele A.
  74.  
  75. ------------------------------------------------------------------------
  76.  
  77. - cross join
  78. mysql> SELECT * FROM customer cross JOIN address limit 10;
  79. +-------------+----------+------------+-----------+-------------------------------------+------------+--------+---------------------+---------------------+------------+-------------------+----------+----------+---------+-------------+-------+---------------------------+---------------------+
  80. | customer_id | store_id | first_name | last_name | email                               | address_id | active | create_date         | last_update         | address_id | address           | address2 | district | city_id | postal_code | phone | location                  | last_update         |
  81. +-------------+----------+------------+-----------+-------------------------------------+------------+--------+---------------------+---------------------+------------+-------------------+----------+----------+---------+-------------+-------+---------------------------+---------------------+
  82. |           1 |        1 |            | SMITH     | MARY.SMITH@sakilacustomer.org       |          5 |      1 | 2006-02-14 22:04:36 | 2017-03-27 12:33:10 |          1 | 47 MySakila Drive | NULL     | Alberta  |     300 | NULL        |       |        >
  83. 2]c4\�vۍ��H@     | 2017-03-27 12:34:45 |
  84. |           2 |        1 | PATRICIA   | JOHNSON   | PATRICIA.JOHNSON@sakilacustomer.org |          6 |      1 | 2006-02-14 22:04:36 | 2006-02-15 04:57:20 |          1 | 47 MySakila Drive | NULL     | Alberta  |     300 | NULL        |       |        >
  85. 2]c4\�vۍ��H@     | 2017-03-27 12:34:45 |
  86. |           3 |        1 | LINDA      | WILLIAMS  | LINDA.WILLIAMS@sakilacustomer.org   |          7 |      1 | 2006-02-14 22:04:36 | 2006-02-15 04:57:20 |          1 | 47 MySakila Drive | NULL     | Alberta  |     300 | NULL        |       |        >
  87. 2]c4\�vۍ��H@     | 2017-03-27 12:34:45 |
  88. |           4 |        2 | BARBARA    | JONES     | BARBARA.JONES@sakilacustomer.org    |          8 |      1 | 2006-02-14 22:04:36 | 2006-02-15 04:57:20 |          1 | 47 MySakila Drive | NULL     | Alberta  |     300 | NULL        |       |        >
  89. 2]c4\�vۍ��H@     | 2017-03-27 12:34:45 |
  90. |           5 |        1 | ELIZABETH  | BROWN     | ELIZABETH.BROWN@sakilacustomer.org  |          9 |      1 | 2006-02-14 22:04:36 | 2006-02-15 04:57:20 |          1 | 47 MySakila Drive | NULL     | Alberta  |     300 | NULL        |       |        >
  91. 2]c4\�vۍ��H@     | 2017-03-27 12:34:45 |
  92. |           6 |        2 | JENNIFER   | DAVIS     | JENNIFER.DAVIS@sakilacustomer.org   |         10 |      1 | 2006-02-14 22:04:36 | 2006-02-15 04:57:20 |          1 | 47 MySakila Drive | NULL     | Alberta  |     300 | NULL        |       |        >
  93. 2]c4\�vۍ��H@     | 2017-03-27 12:34:45 |
  94. |           7 |        1 | MARIA      | MILLER    | MARIA.MILLER@sakilacustomer.org     |         11 |      1 | 2006-02-14 22:04:36 | 2006-02-15 04:57:20 |          1 | 47 MySakila Drive | NULL     | Alberta  |     300 | NULL        |       |        >
  95. 2]c4\�vۍ��H@     | 2017-03-27 12:34:45 |
  96. |           8 |        2 | SUSAN      | WILSON    | SUSAN.WILSON@sakilacustomer.org     |         12 |      1 | 2006-02-14 22:04:36 | 2006-02-15 04:57:20 |          1 | 47 MySakila Drive | NULL     | Alberta  |     300 | NULL        |       |        >
  97. 2]c4\�vۍ��H@     | 2017-03-27 12:34:45 |
  98. |           9 |        2 | MARGARET   | MOORE     | MARGARET.MOORE@sakilacustomer.org   |         13 |      1 | 2006-02-14 22:04:36 | 2006-02-15 04:57:20 |          1 | 47 MySakila Drive | NULL     | Alberta  |     300 | NULL        |       |        >
  99. 2]c4\�vۍ��H@     | 2017-03-27 12:34:45 |
  100. |          10 |        1 | DOROTHY    | TAYLOR    | DOROTHY.TAYLOR@sakilacustomer.org   |         14 |      1 | 2006-02-14 22:04:36 | 2006-02-15 04:57:20 |          1 | 47 MySakila Drive | NULL     | Alberta  |     300 | NULL        |       |        >
  101. 2]c4\�vۍ��H@     | 2017-03-27 12:34:45 |
  102. +-------------+----------+------------+-----------+-------------------------------------+------------+--------+---------------------+---------------------+------------+-------------------+----------+----------+---------+-------------+-------+---------------------------+---------------------+
  103. 10 rows in set (0,00 sec)
  104.  
  105.  
  106.  
  107.  
  108. • Spajaju se sve kolone sa svim kolonama
  109.  
  110. ------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement