Créer une vue à partir de l'instruction Select avec plusieurs sous-requêtes / jointures
Donc, j'ai plusieurs tables et je suis en train de créer une vue pour afficher tout retourné dans ma instruction select. Cependant, il semble que mysql ne permet pas de créer des Vues qui ont des sous-requêtes dans de.
Donc pas vraiment sûr de savoir comment convertir cette vue.
Select Title as "AlbumName" ,
Sum(trk1.Price * trk1.Quant) as "TotalSales"
From Album alb
INNER JOIN
(
SELECT AlbumId,
t1.UnitPrice as "Price" ,
t1.Quantity as "Quant"
FROM Track trk
INNER JOIN
(
SELECT TrackId, UnitPrice, Quantity
FROM InvoiceLine
WHERE InvoiceId IN ( SELECT InvoiceId FROM Invoice )
) AS t1 ON (trk.TrackId = t1.TrackId)
) as trk1 ON (alb.AlbumId = trk1.AlbumId)
Group By alb.AlbumId
OriginalL'auteur Gray_Hound | 2013-03-18
Vous devez vous connecter pour publier un commentaire.
La création d'un
VIEW
dansMySQL
est simplement facile mais il y a certaines restrictions. Voir ICI: MySQL VueL'une des restrictions est que
VIEW
s ne peut pas avoirSELECT
déclaration qui contient une sous-requête dans la clause from. Donc, comme une alternative, de créer une vue pour la première sous-requête qui contientIN
clause.Une fois que la vue a été créé, vous pouvez à présent passer en rejoignant le point de vue de votre requête initiale de sorte que vous pouvez maintenant créer un travail entièrement
VIEW
. Vous n'aurez pas besoin de plus de vue pour imprévue des sous-requêtes.Si,
VIEWS
dans MySQL sont horribles.OriginalL'auteur John Woo
Si vous avez vraiment besoin de cela comme d'un point de vue, vous avez pour envelopper les sous-requêtes, comme les vues d'abord.
Code n'est pas testé
OriginalL'auteur peterm
Malheureusement, MySQL ne supporte pas les sous-requêtes de ce genre dans votre point de Vue. La seule solution que j'ai entendu parler de est de créer des vues distinctes pour chaque sous-requête, puis créer votre écran principal à l'aide de vos autres points de vue. C'est un peu étrange que cela fonctionne, mais il n'.
Dans votre cas, vous auriez besoin de créer 3 vues -- 2 pour l'intérieur des sous-requêtes, et 1 pour le principal.
C'est une mauvaise conception de l'utilisation de la vue (malheureusement pas mon choix) Et ne savons pas comment je pourrais créer des vues de lui (à moins que je puisse faire la table1.TrackId DANS la table2.TrackId
OriginalL'auteur sgeddes