2016-04-06 8 views
0

ich so einige Tabellen Partituren haben ...mysql Abfrage bekommen einige Tabelle/array

id A B score 
1 10 4 100 
2 10 2 320 
3 10 1 100 
4 20 4 20 
5 20 3 100 
6 20 2 120 
7 20 1 110 
8 30 4 30 
9 30 3 200 

und ich möchte einige Abfrage oder PHP-Methode Ausgabe wie

column A => 10 20  30 
     4 = 100 20  30 
     3 = null 100 200 
     2 = 320 120 null 
     1 = 100 110 null 
     ^
     || 
     (coumn b) 

oder

machen

Also ich möchte Spaltenwert erhalten, aber basierend auf Anspruch B, wenn Spalte A keinen Zeilenwert von einer Spalte B haben, geben Null.

Ich habe versucht, voll beizutreten, Cross Join, etc, aber ich habe es versäumt, das ist wie es.

SELECT * FROM TABLE CROSS JOIN 
     (SELECT * FROM TABLE CROSS GROUP BY B) 
    ORDER BY B DESC 

dank

Antwort

1

ist hier eine andere Art und Weise Sie es tun, eine verschachtelte Schleife tun (mit mysqli_*):

echo '<table>'; 

$stmt = $connection->prepare("SELECT B FROM TABLE ORDER BY B DESC"); 
$stmt->execute(); 
$stmt->store_result(); 
$stmt->bind_result($b); 
while($stmt->fetch()){ 

    echo '<tr> 
       <td>'.$b.'</td>'; 

    $stmt2 = $connection->prepare("SELECT A FROM TABLE GROUP BY A ORDER BY A"); 
    $stmt2->execute(); 
    $stmt2->store_result(); 
    $stmt2->bind_result($a); 
    while($stmt2->fetch)){ 

     $stmt3 = $connection->prepare("SELECT score FROM TABLE WHERE A = ? AND B = ?"); 
     $stmt3->bind_param("ii", $a, $b); 
     $stmt3->execute(); 
     $stmt3->store_result(); 
     if($stmt3->num_rows > 0){ 
      $stmt3->bind_result($score); 
      $stmt3->fetch(); 
      echo '<td>'.$score.'</td>'; 
     } else { 
      echo '<td>NULL</td>'; 
     } 
     $stmt3->close(); 

    } /* END OF WHILE LOOP OF SECOND STATEMENT */ 
    $stmt2->close(); 

    echo '</tr>'; /* END OF ROW */ 

} /* END OF WHILE LOOP */ 
$stmt->close(); 

echo '</table>'; 

Aber ich bin mir ziemlich sicher, dass jemand Ihre Frage in einem einzigen beantworten würde Abfrage.

+0

Dank: D, während warten jemand mir mit einer einzigen Abfrage helfen, ich werde Ihre Wege versuchen. –

+0

hey, ich habe versucht, und das hat für mich funktioniert, in Ordnung, wenn verschachtelte Schleife auf Server-Seite Code, nicht auf SQL verwenden. Vielen Dank –