Mes compétences de recherche google m'ont échoué, et je ne suis pas un expert en base de données par tous les moyens! J'ai un schéma de base de données très simple qui ressemble à ceci:Création d'une vue de base de données avec logique booléenne
database schema http://bit.ly/adeUVL
properties_id dans la table de CANDY est une clé étrangère id dans la table EXPENSIVE_PROPERTIES. Le properties_id est seulement défini si le bonbon est cher. S'il est cher, les valeurs correspondantes dans la table EXPENSIVE_PROPERTIES vont se remplir
Quand je veux obtenir une liste des bonbons, je veux essentiellement le faire.
- demande tous les propriétés dans la table de CANDY, comme le nom et la couleur
- en option obtenir les propriétés coûteuses si la valeur properties_id est non nul
dans le passé, je l'ai fait deux requêtes, mais cela est stupide puisque je devrais pouvoir pour créer une vue qui agrègent es toutes les propriétés dans une table et laisse simplement les autres champs vides s'il n'y a pas d'identifiant correspondant dans la table EXPENSIVE_PROPERTIES.
Quelqu'un peut-il me dire comment créer cette vue dans SQLite? Je suppose qu'il est possible, mais je ne pouvais pas comprendre from the docs:
Le SINON EXISTE éléments ne semblent pas avoir quelque chose à voir avec l'existence d'une valeur de champ particulier.
MISE À JOUR
La question a été répondu, mais une chose que je trouve étrange est que, dans certains cas, je vois des entrées en double. J'utilise SQLite Administrator, et quand j'exécute l'instruction CREATE VIEW et que je regarde dans l'onglet résultats, j'obtiens des entrées uniques. Si je fais juste une instruction SELECT, j'obtiens des lignes en double. Si je crée la vue, puis faites un SELECT * FROM myview; Je vois aussi des lignes en double. Quelqu'un peut-il nous éclairer là-dessus? Devrais-je créer une nouvelle question?
MISE À JOUR # 2
Peu importe, je trouve mon erreur - j'avais deux tables après FROM, ce qui provoque la duplication.
ok, je vais essayer maintenant. Merci! Je n'avais pas utilisé de jointure externe avant. – Dave
qui a fonctionné !!! Je vous remercie. – Dave
encore une question - bien que cela fonctionne, pourquoi l'utilisation d'une seule instruction SELECT (sans création de vue) se termine par des lignes dupliquées dans les résultats? – Dave