Ich habe 4 Tabellengezählte Anzahl von Instanzen für jedes Objekt in der Tabelle
code {
id,
name,
fiveDigit,
startDate,
endDate,
promo_code_id
}
promo_code {
id,
description,
title,
extraDigit,
createdDate
}
company {
id,
name
}
promo_code_company {
id,
promo_code_id,
company_id
}
ich Abfrage benötigen, die mich Liste aller Codes zurück -> Promo-Codes und ich brauche 2 zusätzliche Attribute, die mir zeigen, Anzahl der Unternehmen jeder Promocode haben und ein Attribut, das mir den Namen nur einer Firma zeigen wird * Ich muss nur eine Firma zeigen, auch wenn Promo-Code mehr als eine Firma haben.
Ich weiß, wie man diesen Tabellen beitreten kann, um alle Informationen zu bekommen, aber ich habe keine Ahnung, wie ich NumberOfCompanies für jeden Promo-Code bekommen kann. Ich erwarte Antwort so etwas wie dieses:
name fiveDigit title numberOfComapnies companyName
super code 12345 some title 11 sample
Ich habe bereits versucht, so etwas wie dieses
SELECT pc.id, c.id
count(pc.id) numberOfComapnies,
FROM code c
LEFT OUTER JOIN promo_code pc ON pc.Id=c.promo_code_id
LEFT OUTER JOIN promo_code_company pcc ON pcc.promo_code_id = pc.Id
LEFT OUTER JOIN company co on co.id = pcc.company_id
GROUP BY pc.Id, c.id
Wenn ich tun, dass ich Liste der Promo-Codes zu bekommen, aber ich numberOfCompanies 1 auf jedem Gutscheincode zu erhalten. Grundsätzlich muss ich in vielen zu vielen Tabelle Promo_code_company zählen, aber ich bin mir nicht sicher, wie man das macht. Und wenn ich von GROUP BY ein Feld zu entfernen i erhalten Fehler wie diese
in der GROUP BY-Klausel erscheinen müssen oder in einer Aggregatfunktion verwendet werden
EDIT: Also habe ich die Abfrage der Arbeit, und jetzt im frage mich, wie ich Name von 1 Firma schreiben kann, wenn ich zum Beispiel c.id wähle, dann funktioniert mein Zählen nicht, also brauche ich eine Möglichkeit, nur einen Firmennamen zu schreiben, zum Beispiel den ersten, irgendwelche Vorschläge?
'count (c.id)' anstelle von 'count (pc.id)' –
ich bekomme immer noch 2 gleiche codes aber mit verschiedenen comapnies und mit numbeerOfCompanies 1 für jeden ... –