Table requête PostgreSQL 9.0 sur valeur de clé étrangère?
-
16-10-2019 - |
Question
question Noob type:
Dire que j'ai deux tables, des bonbons et des couleurs. Le tableau des couleurs contient des paires code juste / valeur comme 01 jaune, 02 bleu, 03 vert, etc., et est référencé par le code dans la table des bonbons.
Comment puis-je interroger la table des bonbons pour tous les bonbons bleus sans jointure explicite? Depuis deux ans, j'ai écrit ces requêtes avec les jointures, comme:
SELECT * FROM bonbons JOIN couleurs o ON (a.color_code = o.color_code)
OÙ o.color_value = 'bleu';
Je suis certain que chaque fois que je vais apporter une arme à feu à un combat au couteau, mais mon googling a été sans résultat.
Merci.
La solution
« Je suis certain que chaque fois que je vais apporter une arme à feu à un combat au couteau, mais mon googling a été inutile. » Qu'est ce qui te fait penser ça? SGBDR sont construits pour « rejoindre »
Si votre objectif est de vous faire SQL plus lisible, vous pouvez préférer le «
Autres conseils
Vous pouvez l'écrire comme:
select
ca.*
from
candies ca
where
ca.color_code = (
select co.color_code
from colors co
where co.color_value = 'blue'
)
mais il ne devrait pas y avoir de différence. En fait, la jointure approche est un peu plus robuste.
De plus - envisager de se débarrasser de la table des couleurs du tout, et en utilisant seulement color_values ??au lieu des codes. Il est en fait plus efficace.