Daha fazla join

Oracle SQL'ye Giriş

Sara Billen

Curriculum Manager

Diğer join türleri

  • CROSS JOIN
  • Kendine JOIN
Oracle SQL'ye Giriş

Kartezyen çarpım (diğer adıyla cross product)

Kartezyen çarpım diyagramı

Oracle SQL'ye Giriş

Tablolarda cross product

$$

Tablolarda cross product

Oracle SQL'ye Giriş

Cross product örneği

SELECT * 
FROM MediaType
| MediaTypeId | Name                        |
|-------------|-----------------------------|
| 1           | MPEG audio file             |
| 2           | Protected AAC audio file    |
| 3           | Protected MPEG-4 video file |
| 4           | Purchased AAC audio file    |
| 5           | AAC audio file              |
Oracle SQL'ye Giriş

Cross product örneği

SELECT m.MediaTypeId, m.Name, t.TrackId, t.Name, t.MediaTypeId
FROM MediaType m CROSS JOIN Track t
| MediaTypeId | Name                        | TrackId | Name       | MediaTypeId       |
|-------------|-----------------------------|---------|------------|-------------------|
| 1           | MPEG audio file             | 3021    | Forty      | 1                 |
| 2           | Protected AAC audio file    | 3021    | Forty      | 1                 |
| 3           | Protected MPEG-4 video file | 3021    | Forty      | 1                 |
| 4           | Purchased AAC audio file    | 3021    | Forty      | 1                 |
| 5           | AAC audio file              | 3021    | Forty      | 1                 |

Oracle SQL'ye Giriş

Kendine join

  • Bir tabloyu kendisiyle birleştirme

Kullanım durumu:

SELECT * FROM Employee
| EmployeeId | LastName | Title               | ... | ReportsTo |
|------------|----------|---------------------|-----|-----------|
| 1          | Adames   | General Manager     | ... | null      |
| 2          | Edwards  | Sales Manager       | ... | 1         |
| 3          | Peacock  | Sales Support Agent | ... | 2         |
| 4          | Park     | Sales Support Agent | ... | 2         |

Oracle SQL'ye Giriş

Kendine join

SELECT e.LastName Employee, m.LastName ReportsTo
FROM Employee e JOIN Employee m
ON (e.ReportsTo = m.EmployeeId)
| Employee | ReportsTo |
|----------|-----------|
| Edwards  | Adams     |
| Peacock  | Edwards   |
| Mitchell | Adams     |
| Park       | Edwards   |
| ...      | ...       |
Oracle SQL'ye Giriş

Haydi pratik yapalım!

Oracle SQL'ye Giriş

Preparing Video For Download...