it-swarm.com.de

Rufen Sie Daten aus mehreren SELECT-Unterabfragen für die Berichterstellung aus der MySQL-Datenbank ab

Ich versuche zu erreichen, ist, eine komplexe Abfrage zu erstellen, die aus einigen Unterabfragen besteht. Die Idee ist, es einer Geschäftsperson zur wöchentlichen Ausführung zu geben, um Berichtsdaten abzurufen.

Der Effekt ähnelt der folgenden Abfrage, bei der alle Daten aus vielen Tabellen in einem Ergebnis angezeigt werden.

select * from table1, table2, table3

Also ich brauche sowas, aber es funktioniert nicht.

select 
    (select * from   table1 where ...... ) as table1,
    (select * from   table2 where....... ) as table2

Manuell könnte ich die Unterabfragen separat ausführen und die Ergebnisse dann manuell in eine große Excel-Tabelle einfügen. Aber ich möchte es dem Geschäftsmann leichter machen, dies zu tun und Fehler zu minimieren.

Ist das in MySQL möglich?

Der Grund dafür ist, dass ich ältere Oracle PIVOT SQL-Anweisungen in die MySQL-Entsprechung konvertiere und die Unterabfragen ziemlich komplex sind.

Bei Bedarf kann ich Oracle SQL bereitstellen.

Wie immer sehr geschätzt.

12
user1775967

Nach einigem Herumspielen:

select * from
    (select * from   table1 where survey_user_id=4 ) as T1
    ,
    (select * from   table2 where survey_field_type_id=100 ) as T2
    ,
    (select * from table3  )  as T3
20
user1775967

Wenn ich Sie richtig verstehe, brauchen Sie nur UNION: D

(SELECT column1 AS name1, column2 AS name2 FROM table1 WHERE ...... )
UNION
(SELECT column3 AS name1, column4 AS name2 FROM table2 WHERE ...... )
UNION
....

Wie unten im Kommentar erwähnt, müssen Spalten denselben Namen haben (Sie können Aliase dafür verwenden) und in derselben Reihenfolge bleiben.

10
tkeram
select main.*,
(select col from tbl1 where tbl1.id=main.id) as col1,
(select col from tbl2 where tbl2.id=main.id) as col2,
(select col from tbl3 where tbl3.id=main.id) as col3
from master as main
0
user3600754