Archief - SQL: COUNT uit 2 tabellen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

VeNeReA

Legacy Member
Hoi,

Ik heb 2 tabellen:

tblA
kolommen: User, Reveals

tblB
kolommen: User, Bsgems

Ik probeer de volgende situatie te bekomen:

User || Totaal Reveals || Totaal aantal Bsgems
===================================
Piet || 20 || 5
Jef || 12 || 35
... || ... || ...

Dus ik moet 2 x de count van de rijen doen uit de 2 tabellen waarbij ze gegroepeerd moeten zijn volgens User.
Dit is mijn voorlopige code:
PHP:
<table width="400" border="0" cellspacing="0" cellpadding="0">
      <tr>
           <td><b>User</b></td>
           <td><b># Reveals</b></td>
      </tr>
      <?
      $sql = "SELECT User, COUNT(*) AS FromUser FROM tblreveals GROUP BY User ORDER BY User;";
      $result = mysql_query($sql, $dbcon);

      while ($row = mysql_fetch_array($result)){
      echo "<tr><td>" . $row["User"] . "</td><td>" . $row["FromUser"] . "</td></tr>";
      }
      ?>
</table>
Ik heb het dus al voor de ene tabel, maar om die 2de tabel erbij te krijgen lukt het me niet. Ik heb al vannalles geprobeerd met JOIN enzo maar da lijkt niet echt te werken met die COUNT erbij.

Weet iemand raad?

SlashDotCom

Legacy Member
hetzelfde scriptje kopieren maar er ervoor zorgen dat $sql dan $sql1 wordt ofzo?

Spacy2003

Legacy Member
Een geneste while met een aparte $result (overschrijf $result wel niet, bv $result1)
sql query. En in de plaats van $row zet je $row1 bv.

In principe zet je gewoon twee whiles in elkaar, maar overschrijf de vars die je nodig hebt wel niet ! ;)

dJeez

Legacy Member
Ik zou denken :
select a.user, count(a.reveals), count(b.bsgems)
from tblA a
left join tblB b on b.user=a.user
group by a.user

Maar 'k denk nog steeds vrij wazig (medicatie) dus 'k kan er naast zitten.

BTW 't Zou wel beter zijn van te werken met een aparte user tabel en User IDs...

RpR

Legacy Member
Zoek dit eens op
UNION(SQL) van de 2 tabellen.
Dit zal de 2 tabellen doen samenvoegen voor de query maar ze moeten wel dezelfde groote hebben

VeNeReA

Legacy Member
dJeez zei:
Ik zou denken :


Maar 'k denk nog steeds vrij wazig (medicatie) dus 'k kan er naast zitten.

BTW 't Zou wel beter zijn van te werken met een aparte user tabel en User IDs...
heb ik ook al zitten denken om met aparte user tabel te werken
wll doe ik het dan zo

toch bedankt voor de reacties

PerfectPC

Legacy Member
RpR zei:
Zoek dit eens op
UNION(SQL) van de 2 tabellen.
Dit zal de 2 tabellen doen samenvoegen voor de query maar ze moeten wel dezelfde groote hebben
dat gaat de resultaten onder elkaar plaatsen ipv gekoppeld.

de query van dJeez lijkt me op het eerste zicht de goede.

Kn0t

Legacy Member
count(distinct a.reveals) en count(distinct b.bsgems) geloof ik.

RpR

Legacy Member
PerfectPC zei:
dat gaat de resultaten onder elkaar plaatsen ipv gekoppeld.

de query van dJeez lijkt me op het eerste zicht de goede.
Ge zet ze eerst onder elkaar en dan met een count...
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan