Ja, Oracle stöder kommandot "Inner Join". Det används precis som i andra SQL -databaser för att kombinera rader från två eller flera tabeller baserade på en relaterad kolumn mellan dem. Endast rader som har matchande värden i båda tabellerna ingår i resultatuppsättningen.
Här är den grundläggande syntaxen:
`` `SQL
Välj kolumnnamn (er)
Från tabell1
Inre anslutning tabell2 på tabell1.column_name =tabell2.column_name;
`` `
Du kan också använda den äldre, mer verbose "gå med" -syntaxen som är funktionellt motsvarande "inre koppling":
`` `SQL
Välj kolumnnamn (er)
Från tabell1, tabell2
Där tabell1.column_name =tabell2.column_name;
`` `
Även om detta fungerar föredras syntaxen "inre sammanfogning" för läsbarhet och tydlighet, särskilt i komplexa frågor som involverar flera sammanfogningar. Nyckelordet "gå med" undviks vanligtvis i moderna SQL -kodningspraxis.
Exempel:
Låt oss säga att du har två tabeller:"Anställda" och "avdelningar".
Anställdas Tabell:
| anställd_id | namn | avdelningen_id |
| ------------- | ----------- | ---------------- |
| 1 | John Doe | 10 |
| 2 | Jane Doe | 20 |
| 3 | David Lee | 10 |
avdelningar Tabell:
| avdelningen_id | namn |
| ------------- | ------------- |
| 10 | Försäljning |
| 20 | Marknadsföring |
| 30 | Teknik |
En "inre Join" -fråga för att hämta anställdas namn och deras avdelningsnamn skulle se ut så här:
`` `SQL
Välj anställda.name, avdelningar.name
Från anställda
Inre anslutningsavdelningar på anställda.Department_ID =avdelningar.Department_id;
`` `
Detta skulle återvända:
| namn | namn |
| ----------- | ------------- |
| John Doe | Försäljning |
| Jane Doe | Marknadsföring |
| David Lee | Försäljning |
Endast anställda som har en matchande `Department_ID 'i båda tabellerna ingår i resultatet. Anställda som inte tilldelas en avdelning i tabellen "avdelningar", eller avdelningar utan anställda i tabellen "Anställdas", skulle inte inkluderas.