2017-06-18 6 views
-2

Ich habe ein schnelles Problem, dass ich keine Antwort finden kann.Wie beitreten/Union Abfragen

(SELECT Student_Name AS 'First two from Quiz' FROM events WHERE Event_Name LIKE 'Quiz' ORDER BY Student_Name LIMIT 2) 
UNION ALL 
(SELECT Student_Name as 'Last two from Quiz' FROM (SELECT Student_Name FROM events WHERE Event_Name LIKE 'Quiz' ORDER BY Student_Name DESC LIMIT 2) as q ORDER BY Student_Name) 
UNION ALL 
(SELECT Student_Name as 'Last two from Sqlizer' FROM (SELECT Student_Name FROM events WHERE Event_Name LIKE 'Sqlizer' ORDER BY Student_Name DESC LIMIT 2) as w ORDER BY Student_Name) 
UNION ALL 
(SELECT Student_Name AS 'First two from Sqlizer' FROM events WHERE Event_Name LIKE 'Sqlizer' ORDER BY Student_Name LIMIT 2) 

Hier ist ein kleiner Code von mir. Und ich muss sie einander zeigen. Wie einer neben dem anderen. Es zeigt alle in einer Spalte wegen der Vereinigung alle an. Haben Sie eine Idee zur Lösung dieses Problems? Bitte, das ist nur eine Frage der Zeit. Ich möchte es in 2 Stunden beenden.

+1

Könnten Sie Ihre Frage anders formulieren? Möglicherweise könnte die erwartete Ausgabe und echte helfen – FieryCat

+0

Es gibt keine Notwendigkeit dafür. Die Frage wurde bereits beantwortet –

Antwort

0

Ich bin mir ziemlich sicher, dass es eine elegantere Lösung gibt, aber das ist die Zeit, die ich hatte. Sie könnten einfach einen Join verwenden, um die Tabellen nebeneinander zu legen, aber das würde Ihnen alle möglichen Permutationen der Daten geben, die wir nicht wollen. So habe ich einen Zähler zu jedem der vier Tabellen und nur dann ausgegeben, eine Permutation der Daten (die, wo die Zähler sind alle gleich):

SELECT a.Student_Name AS 'First two from Quiz', b.Student_Name as 'Last two from Quiz', c.Student_Name as 'Last two from Sqlizer', d.Student_Name AS 'First two from Sqlizer' 
FROM 
(SELECT @s:[email protected]+1 serial_no, Student_Name FROM events, (select @s:=0) as s WHERE Event_Name LIKE 'Quiz' ORDER BY Student_Name LIMIT 2) as a, 
(SELECT @s1:[email protected]+1 serial_no, t2.Student_Name FROM (SELECT Student_Name FROM events WHERE Event_Name LIKE 'Quiz' ORDER BY Student_Name DESC LIMIT 2) as t2, (select @s1:=0) as s) as b, 
(SELECT @s2:[email protected]+1 serial_no, t3.Student_Name FROM (SELECT Student_Name FROM events WHERE Event_Name LIKE 'Sqlizer' ORDER BY Student_Name DESC LIMIT 2) as t3, (select @s2:=0) as s) as c, 
(SELECT @s3:[email protected]+1 serial_no, Student_Name FROM events, (select @s3:=0) as s WHERE Event_Name LIKE 'Sqlizer' ORDER BY Student_Name LIMIT 2) as d 

WHERE a.serial_no = b.serial_no and c.serial_no = d.serial_no and b.serial_no = c.serial_no 
+0

Vielen Dank für diese Lösung! Ich schätze Ihre schnelle Antwort! Danke dir ein weiteres mal. Ich wünsche dir einen schönen Tag –

+0

@J.Borrow Ich bin froh, dass ich dir helfen konnte. Wenn Sie die Antwort mögen, würde es helfen, wenn Sie es eine Aufwertung geben und es als Lösung akzeptieren könnten. – jens108