Erstellen Sie eine Ansicht aus der Select-Anweisung mit mehrere subqueries / joins
Also ich habe mehrere Tabellen, und ich bin versucht, eine Ansicht zu erstellen, um zu zeigen, was alles so wieder in meiner select-Anweisung. Aber es scheint, dass mysql nicht erlauben, erstellen Sie Ansichten, die Unterabfragen in der from.
Also nicht wirklich sicher, wie Sie Sie zu konvertieren, das auf einen Blick.
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
InformationsquelleAutor Gray_Hound | 2013-03-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellen einer
VIEW
imMySQL
ist schlicht einfach, aber es gibt einige Einschränkungen. Siehe HIER: MySQL AnzeigenEine der Einschränkungen ist, dass
VIEW
s nicht habenSELECT
- Anweisung, die eine Unterabfrage in der FROM-Klausel. So als alternative, erstellen Sie eine Ansicht für den ersten Unterabfrage enthältIN
- Klausel.Nachdem die Ansicht erstellt wurde, können Sie nun durch den Beitritt der Blick von Ihrer ursprünglichen Abfrage, so jetzt können Sie eine voll funktionsfähige
VIEW
. Sie müssen nicht extra Ansicht für nicht berechnete Unterabfragen.Obwohl
VIEWS
in MySQL sind schrecklich.InformationsquelleAutor John Woo
Wenn Sie wirklich brauchen, dies als eine Meinung, die Sie haben zu wickeln Unterabfragen als ersten Blick.
Code ist nicht getestet
InformationsquelleAutor peterm
Leider MySQL nicht unterstützt Unterabfragen wie Sie diese in Ihrem Blick. Der einzige work-around, was ich gehört habe ist, erstellen Sie separate Ansichten für jede Unterabfrage und dann erstellen Sie Ihre Haupt-Ansicht mit Ihren anderen Ansichten. Es ist ein wenig seltsam, dass das funktioniert, aber es funktioniert.
In Ihrem Fall, würden Sie brauchen, zu erstellen, 3 Ansichten -- 2 für die innere Unterabfragen und 1 für die wichtigste.
Es ist ein schlechtes design zu verwenden, Aussicht (leider nicht meine Wahl) Und nicht sicher, wie ich das schaffen würde, Ansichten aus (es sei denn ich kann tun Tabelle1.TrackId IN Tabelle2.TrackId
InformationsquelleAutor sgeddes