2017-05-03 3 views
0

Edit: Ich habe 2 Tabellen in meiner Datenbank: files und user_logs. Ich möchte alle Werte in files drucken und sie mit ähnlichen Werten in user_logs übereinstimmen.php - Auswählen von Daten aus verschiedenen Tabellen, übereinstimmen und zählen die Zahlen, die den gleichen Wert

Die Spalten in user_logs und files sind die gleichen:

 
    +++++++++++++++++++++ 
    + fileName | fileId + 
    +++++++++++++++++++++ 

Und ich möchte die folgende Ausgabe:

 
    +++++++++++++++++++++++++++++++++ 
    + fileName | no. of same values + 
    +++++++++++++++++++++++++++++++++ 
    + fileNo1 |   3   + 
    +++++++++++++++++++++++++++++++++ 
    + fileNo2 |   1   + 
    +++++++++++++++++++++++++++++++++ 
    + fileNo3 |   0   + 
    +++++++++++++++++++++++++++++++++ 

Ich verstehe nicht, was ich recherchiert. Hier ist mein Code:

$sql = "SELECT user_logs.fileName,count(*) as c FROM user_logs JOIN files ON user_logs.fileId = files.fileId UNION ALL SELECT files.fileName as file from files a group by a.fileId DESC "; 
$result = mysqli_query($con,$sql); 
while ($row = mysqli_fetch_assoc($result)) { 
     $num_row = $row['c']; 
    echo "<tr>"; 
     echo "<td>".$row['fileName']."</td>"; 
     echo "<td><a href='#' >".$num_row ."/2 Schools Clicked</a></td>";  
    echo "</tr>"; 
    } 
+0

Bitte lesen Sie diese: [stackoverflow.com/help/how-to-ask] (https://stackoverflow.com/help/how-to-ask) –

+0

tut mir leid. Ich bin sehr arm in Englisch – winmar014

Antwort

0

Wenn ich Sie verstehen, ich glaube, Sie so etwas wie dies als Ihre Abfrage wollen:

SELECT fileName, IF(t.cnt IS NULL, 0, t.cnt) AS c 
FROM files LEFT JOIN 
(SELECT count(*) AS cnt, fileId FROM user_logs GROUP BY fileId) AS t 
ON files.fileId = t.fileId 
ORDER BY fileName 
+0

wow, das ist genau das, was ich suche. Vielen Dank – winmar014

Verwandte Themen