2011-01-14 12 views
1

HALLO ich möchte den Wert der Variablen aus der Hauptabfrage innerhalb der UnterabfrageKorrelierte mysql Unterabfragen

SELECT t1 bekommen. , sq., count (distinct (t4.col1)) als Zählwert, FROM T1 LEFT OUTER ( SELECT t2.col1 JOIN, t2.col2, t2.col3 von t2 WHERE t2.col1 = t1.col1
ORDER BY t2.col2 DESC, t2.col1 DESC ) als sq ON sq.col1 = t1.col1
LEFT OUTER JOIN t3 t3.col1 = t1.col4 LEFT OUTER JOIN t4 ON t4.col1 = t1. col4 WHERE t3.col2 = x GRUPPE BY t1.col3 LIMIT 15

Wie erhalte ich den Wert der Variablen t1.col1 in der Unterabfrage sq, wenn ich ihn in derselben Spalte betrete?

+0

SELECT t1. * , sq. * FROM t1 linke äußere Verbindung ( wählen Sie t2.col1 , t2.col2 , t2.col3 VON t2 wo t2 .col1 t1.col1 = Sortieren nach t2.col2 desc , t2.col1 desc ) als sq auf sq.col1 t1.col1 = wo t1.col3 x = Gruppe von t1.col1 Grenze 15 – pipe

Antwort

0

Sie können nicht, aber folgende sollte äquivalente Ergebnisse als die Abfrage, die Sie gebucht haben, zurückgeben.

SELECT t1.col3    
FROM t1 
     left outer join ( 
      select t2.col1 
        ,t2.col2 
        ,t2.col3 
        ,t2.col4 
      FROM t2 
     ) as sq on sq.col1 = t1.col1 
        AND sq.col4 = t1.col1 
where t1.col2 = x 
group by 
     t1.col3 
limit 15 

Hinweis: Die ursprüngliche Abfrage, die Sie geschrieben haben, enthält einige Syntaxfehler.

  • select * mit Gruppe von
  • , um durch in einem subselect
  • die äußeren Auswahl im subselect (Frage) mit
+0

Ich muss den Wert von t1.col1 innerhalb der Unterabfrage erhalten, damit es ausgeführt wird. – pipe

+0

Ich bin ziemlich sicher, dass Sie nicht tun. Wenn Sie uns einige Testdaten und die erwarteten Ergebnisse liefern könnten, könnten wir eine alternative Lösung finden. –

+0

Sie haben Recht ... Es kann nicht so gemacht werden, wie ich dachte, es könnte sein .. Ich schrieb die Abfrage ... Vielen Dank für die Einsicht – pipe

Verwandte Themen