Stel:
Tabel A:
Tabel B:
Tabel C:
Visueel:
Stel, ik wil het volgende doen:
Alles selecteren van tabel B, waarvan het a_id ook voorkomt in c, en waar c_boolean true is.
Wat is dan beter / sneller?
Of :
Oftewel, tabel A skippen, en rechtstreeks van tabel B naar C joinen, ook al ligt er geen FK op?
Tabel A:
code:
1
| a_id <PK> |
Tabel B:
code:
1
2
| b_id <PK> b_a_id <FK> |
Tabel C:
code:
1
2
3
| c_id <PK> c_a_id <FK> c_boolean |
Visueel:
code:
1
| [B]---------[A]---------[C] |
Stel, ik wil het volgende doen:
Alles selecteren van tabel B, waarvan het a_id ook voorkomt in c, en waar c_boolean true is.
Wat is dan beter / sneller?
SQL:
1
2
3
| SELECT * FROM B INNER JOIN A ON b_a_id = a_id INNER JOIN C ON a_id = c_a_id |
Of :
SQL:
1
2
| SELECT * FROM B INNER JOIN C ON b_a_id = c_a_id |
Oftewel, tabel A skippen, en rechtstreeks van tabel B naar C joinen, ook al ligt er geen FK op?