Bonjour,
je souhaite créer une vue afin d'afficher tous les produits de ma BdD. Un produit est soit un DVD soit un roman (héritage). Dans ma table PRODUIT, j'ai numprod, titreprod et annee. Dans ma table DVD, j'ai realisateur (+ numprod, titreprod et annee) et dans ma table ROMAN, j'ai auteur (+ numprod, titreprod et annee).
Ma vue ressemble à ça :
create view affich_prod
as
select p.titreprod, p.annee
from dvd d, produit p
where d.numprod = p.numprod
or
select p.titreprod, p.annee
from roman r, produit p
where r.numprod = p.numprod;
go
et le message d'erreur est : Expression de type non booléen spécifiée dans un contexte où une condition est attendue, près de ';'.
est-il possible de créer une vue avec 2 select ?
si non, comment puis-je faire ?
merci d'avance.

Bye
sauf que je veux afficher tous les produits, en affichant aussi l'auteur pour les romans et le réalisateur pour les DVD.
donc je fais :
create view affich_prod
as
SELECT numprod, auteur, annee, titreprod
FROM ROMAN
UNION
SELECT numprod, realisateur, annee, titreprod
FROM DVD
UNION
SELECT numprod, titreprod, annee
FROM PRODUIT
go
mais il m'affiche une erreur : Toutes les requêtes combinées à l'aide d'un opérateur UNION, INTERSECT ou EXCEPT doivent posséder un même nombre d'expressions dans leurs listes cibles.
j'ai compris l'erreur : 4 colonne pour roman et DVD et 3 pour produit, ce qui ne va pas, mais je ne vois pas comment faire...
create view affich_prod
as
select p.titreprod, d.realisateur, p.annee
from produit p, dvd d
where p.numprod = d.numprod
union
select p.titreprod, r.auteur, p.annee
from produit p, roman r
where p.numprod = r.numprod
go
mais il me dit que le type de données text ne peut être sélectionné en tant que distinct car il n'est pas comparable...