können also sagen, dass ich einige Datensätze, die wie folgt aussehen:SQL-Abfrage, die alle Daten zurückgibt nicht in einer Tabelle verwendet
2011-01-01 Cat
2011-01-02 Dog
2011-01-04 Horse
2011-01-06 Lion
Wie kann ich eine Abfrage erstellen, die 2011-01-03 und 2011-01 zurückkehren -05, dh die ungenutzten Daten. Ich poste Blogs in die Zukunft und ich möchte eine Abfrage, die mir die Tage zeigen wird, an denen ich noch nichts gepostet habe. Es würde vom aktuellen Datum bis zu 2 Wochen in die Zukunft schauen.
Update:
Ich bin nicht allzu begeistert über eine permanente Tabelle der Daten aufzubauen. Nachdem ich darüber nachgedacht habe, scheint es, als wäre die Lösung, eine kleine gespeicherte Prozedur zu erstellen, die eine temporäre Tabelle erstellt. Etwas wie:
CREATE PROCEDURE MISSING_DATES()
BEGIN
CREATE TABLE TEMPORARY DATES (FUTURE DATETIME NULL)
INSERT INTO DATES (FUTURE) VALUES (CURDATE())
INSERT INTO DATES (FUTURE) VALUES (ADDDATE(CURDATE(), INTERVAL 1 DAY))
...
INSERT INTO DATES (FUTURE) VALUES (ADDDATE(CURDATE(), INTERVAL 14 DAY))
SELECT FUTURE FROM DATES WHERE FUTURE NOT IN (SELECT POSTDATE FROM POSTS)
DROP TABLE TEMPORARY DATES
END
ich es nur erraten ist nicht möglich, die Abwesenheit von Daten auszuwählen.
Große Frage. Ich freue mich auf Antworten, weil ich auch nicht weiß, wie das geht. – Corey
Sie wären überrascht, wie praktisch eine dauerhafte Datumsanzeige sein kann. Wenn Sie einen Ersatzschlüssel hinzufügen, können Sie nicht nur das Problem lösen, sondern auch Probleme wie die Berechnung der Anzahl der Tage zwischen Daten, den Tag der Woche, den Tag usw. auf einfache Arithmetik reduzieren. IMO, die Temp-Tabellen-Lösung ist unelegant und spart Ihnen keine Arbeit. –