dedlfix: "Fehlerhafte" Einträge anzeigen lassen

Beitrag lesen

Tach!

Weißt du vllt. noch ob es eine Möglichkeit gibt beide Abfragen zu verbinden?

Ja, mit UNION.

SELECT h.name, COUNT(h.id)

FROM haupt h, company c
WHERE h.companyId = c.id
GROUP BY h.name
ORDER BY h.id

SELECT COUNT(h.id)
FROM haupt h
WHERE h.companyId NOT IN (SELECT c.id FROM company c)

  
Die zweite Abfrage braucht jedoch noch einen Ersatz für das h.name-Feld der ersten Query, da sie ja jetzt nur eine Summe liefert. Das kann auch ein fester String sein.  
  
Desweiteren wird bei UNION die Sortierung in den einzelnen Querys ignoriert. Nur das UNION-Ergebnis kann man wirksam sortieren. Da bei dir die h.id das Kriterium ist, müsstest du das auch noch in die Ergebnismenge der ersten Query bringen und einen Pseudowert in die zweite.  
  
Noch was: Du gruppierst über h.name. In jeder Gruppe sind zwar alle Namen gleich, aber es sind verschiedene h.id enthalten. Welche von den vielen soll denn bei der Sortierung berücksichtigt werden. MySQL lässt sowas zwar im Gegensatz zu anderen DBMS zu, aber du bekommst nur einen beliebigen Wert aus der zur Gruppe gehörenden Menge. Nach der ID zu sortieren ist auch sinnlos, weil die Werte quer über alle Gruppen beliebig verteilt sind.  
  

> Ich hab mir gedacht den Inhalt aus dem 2. Query in den 1. Query zu schreiben den die Werte aus der DB werden ja in einem Array gespeichert.  
> $query1[] = $query2  
> aber bekomme dann die Fehldermeldung:  Cannot use a scalar value as an array in C: .....  
  
Dazu kann ich nichts sagen, weil ich nicht weiß, was in den Variablen enthalten ist. Jedenfalls ist $query1 kein Array.  
  
  
dedlfix.