wattfrass
Benutzer
- Beiträge
- 8
Hallo,
ich benötige Unterstützung bei der nachfolgenden MySQL-Abfrage.
Hierbei werden die ID´s (`candidate_author`.`candidateID`) sämtlicher Datensätze ausgegeben, bei welchen das Erstelldatum (`candidate_author`.`initial`) innerhalb der letzten 7 Tage liegt.
Ferner werden die Seitenaufrufe für jeden Datensatz für jeden User berücksichtigt, welche in der Tabelle `candidate_database`.`candidate_visits` abgelegt werden. Es besteht eine 1:n Beziehung.
Ziel ist es, nur die neuesten, ungelesenen Datensätze in einem Benachrichtigungsfeld darzustellen.
Wurde der Datensatz von noch keinem Nutzer aufgerufen (d. h. `candidate_visits`.`accountID` IS NULL) generiert die Abfrage das gewünschte Ergebnis. Liegen allerdings bereits Einträge von anderen, als dem eingeloggten Benutzer vor (d. h. `candidate_visits`.`accountID` IS NOT NULL), werden auch Datensätze ausgegeben, die vom eingeloggten Nutzer angesehen wurden.
Der Fehler liegt offenbar im rot-gekennzeichnetem Abschnitt. Anbei meine derzeitige Abfrage:
SELECT `candidate_author`.`candidateID`,
`candidate_author`.`initial`,
`candidate_visits`.`accountID`,
COUNT(*)
FROM `candidate_database`.`candidate_author`
LEFT JOIN `candidate_database`.`candidate_visits`
ON `candidate_visits`.`candidateID` = `candidate_author`.`candidateID`
WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) < `candidate_author`.`initial`
AND ((`candidate_visits`.`accountID` IS NULL) OR (`candidate_visits`.`accountID` IS NOT NULL AND `candidate_visits`.`accountID` NOT LIKE '" . $accountID."'))
GROUP BY `candidate_author`.`candidateID`
ORDER BY `candidate_author`.`initial` DESC;
Welche Maßnahmen sind erforderlich, dass sich das gewünschte Ergebnis erzielen lässt?
Für jegliche Unterstützung bin ich dankbar.
Viele Grüße und ein angenehmes Wochenende
Wattfrass
ich benötige Unterstützung bei der nachfolgenden MySQL-Abfrage.
Hierbei werden die ID´s (`candidate_author`.`candidateID`) sämtlicher Datensätze ausgegeben, bei welchen das Erstelldatum (`candidate_author`.`initial`) innerhalb der letzten 7 Tage liegt.
Ferner werden die Seitenaufrufe für jeden Datensatz für jeden User berücksichtigt, welche in der Tabelle `candidate_database`.`candidate_visits` abgelegt werden. Es besteht eine 1:n Beziehung.
Ziel ist es, nur die neuesten, ungelesenen Datensätze in einem Benachrichtigungsfeld darzustellen.
Wurde der Datensatz von noch keinem Nutzer aufgerufen (d. h. `candidate_visits`.`accountID` IS NULL) generiert die Abfrage das gewünschte Ergebnis. Liegen allerdings bereits Einträge von anderen, als dem eingeloggten Benutzer vor (d. h. `candidate_visits`.`accountID` IS NOT NULL), werden auch Datensätze ausgegeben, die vom eingeloggten Nutzer angesehen wurden.
Der Fehler liegt offenbar im rot-gekennzeichnetem Abschnitt. Anbei meine derzeitige Abfrage:
SELECT `candidate_author`.`candidateID`,
`candidate_author`.`initial`,
`candidate_visits`.`accountID`,
COUNT(*)
FROM `candidate_database`.`candidate_author`
LEFT JOIN `candidate_database`.`candidate_visits`
ON `candidate_visits`.`candidateID` = `candidate_author`.`candidateID`
WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) < `candidate_author`.`initial`
AND ((`candidate_visits`.`accountID` IS NULL) OR (`candidate_visits`.`accountID` IS NOT NULL AND `candidate_visits`.`accountID` NOT LIKE '" . $accountID."'))
GROUP BY `candidate_author`.`candidateID`
ORDER BY `candidate_author`.`initial` DESC;
Welche Maßnahmen sind erforderlich, dass sich das gewünschte Ergebnis erzielen lässt?
Für jegliche Unterstützung bin ich dankbar.
Viele Grüße und ein angenehmes Wochenende
Wattfrass