Ik wil graag jullie mening weten over het volgende.:
Ik heb bv. twee simpele tabellen
Beide tabellen moeten gekoppeld worden om de gewenste resultset te krijgen:
Dit kan met een left join:
of een subselect:
Met een subselect kan je maar één veld uit tabel2 benaderen terwijl je met een join beschikking hebt over alle velden uit tabel2.
Voordeel van een subselect vind ik wel weer dat je geen lelijke join namen hebt (join1, join2 etc..) als je meerdere keren dezelfde tabel moet joinen met verschillende criteria.
Met het testen op een grote resultset blijkt overigens een subselect sneller te zijn dan een join.
Wat is jullie mening?
Zouden jullie voor het ophalen van een veld een join of een subselect gebruiken?
Ik heb bv. twee simpele tabellen
code:
1
2
3
4
5
6
7
| tabel1: tabel2:
+-------+-------+ +-------+--------------+
|id |product| |product|omschrijving |
+-------+-------+ +-------+--------------+
|0 |X | |X |X is een nieuw|
+-------+-------+ | |product. |
+-------+--------------+ |
Beide tabellen moeten gekoppeld worden om de gewenste resultset te krijgen:
code:
1
2
3
4
5
6
| +-------+-------+--------------+ |id |product|omschrijving | +-------+-------+--------------+ |0 |X |X is een nieuw| | | |product. | +-------+-------+--------------+ |
Dit kan met een left join:
code:
1
2
3
4
5
6
7
8
| select tabel1.id, tabel1.product, tabel2.omschrijving from tabel1 left join tabel2 on tabel2.product = tabel1.product |
of een subselect:
code:
1
2
3
4
5
6
| select id, product, (select omschrijving from tabel2 where product = tabel1.product) from tabel1 |
Met een subselect kan je maar één veld uit tabel2 benaderen terwijl je met een join beschikking hebt over alle velden uit tabel2.
Voordeel van een subselect vind ik wel weer dat je geen lelijke join namen hebt (join1, join2 etc..) als je meerdere keren dezelfde tabel moet joinen met verschillende criteria.
Met het testen op een grote resultset blijkt overigens een subselect sneller te zijn dan een join.
Wat is jullie mening?
Zouden jullie voor het ophalen van een veld een join of een subselect gebruiken?