Ich habe zwei Tabellen, genannt vservers
und nodes
:Null-Wert nicht gezählt werden, wenn die Verbindung von zwei Tabellen
vservers
:
vserverid **PK** | nodeid **FK**
1 5
2 6
3 7
nodes
:
nodeid | name | maxvps
5 some_name 4
6 some_name 4
7 some_name 4
Also, wenn es so manche vservers
die keine Werte hat, werden sie nicht gezählt oder über PHP abgerufen.
SELECT nodes.name as name, COUNT(vservers.vserverid) as count_vps ,nodes.maxvps
FROM nodes, vservers
WHERE vservers.nodeid = nodes.nodeid
AND nodes.name LIKE 'some_name%'
GROUP BY name
Mein zweiter Ansatz war dies auch, aber es gibt das gleiche Ergebnis:
SELECT nodes.name as name, COUNT(*)- COUNT(vservers.vserverid) as count_vps, nodes.maxvps
FROM nodes, vservers
WHERE vservers.nodeid = nodes.nodeid
AND nodes.name LIKE 'some_name%'
GROUP BY name
, aber immer noch gibt es das gleiche Ergebnis - Nullwerte sind nicht enthalten. EDIT: Bisher habe ich festgestellt, dass NULL-Werte nicht zählen. Also gibt es eine Funktion ISNULL, die sowohl NULL als auch reale Werte zählt. Das Problem ist, dass ich nicht weiß, wie ich es umsetzen soll.
Irgendwelche Vorschläge Jungs?
du machst einen inneren beitreten. Sie müssen stattdessen einen Links-/Rechts-Join verwenden. inner join = records MÜSSEN in beiden Tabellen im Join existieren. links/rechts - Datensätze müssen in einer der Tabellen vorhanden sein, aber nicht notwendigerweise in der anderen. –