Um die Adressen und Namen der Kunden zu ermitteln, die in einem bestimmten Zeitraum in deinem PrestaShop bestellt haben, benötigst du eine SQL-Abfrage, die mehrere Tabellen miteinander verknüpft (JOINs). Hier ist eine solche Abfrage:
**SQL-Abfrage:**
SELECT
c.firstname,
c.lastname,
a.address1,
a.address2,
a.postcode,
a.city,
a.phone,
a.phone_mobile
FROM
`ps_orders` o
JOIN
`ps_customer` c ON o.id_customer = c.id_customer
JOIN
`ps_address` a ON o.id_address_delivery = a.id_address
WHERE
o.date_add BETWEEN '2023-01-01 00:00:00' AND '2023-12-31 23:59:59';
```
**Erläuterung:**
* **`SELECT c.firstname, c.lastname, a.address1, a.address2, a.postcode, a.city, a.phone, a.phone_mobile`**:
* Diese Klausel wählt die gewünschten Spalten aus: Vorname und Nachname des Kunden aus der Tabelle `ps_customer`, sowie die Adressinformationen aus der Tabelle `ps_address`.
* **`FROM \`ps_orders\` o`**:
* Beginnt mit der Tabelle `ps_orders` (Bestellungen) und gibt ihr das Alias „o“.
* **`JOIN \`ps_customer\` c ON o.id_customer = c.id_customer`**:
* Verknüpft die Tabelle `ps_orders` mit der Tabelle `ps_customer` (Kunden) basierend auf der übereinstimmenden `id_customer`.
* **`JOIN \`ps_address\` a ON o.id_address_delivery = a.id_address`**:
* Verknüpft die Tabelle `ps_orders` mit der Tabelle `ps_address` (Adressen) basierend auf der übereinstimmenden `id_address_delivery`, da dies die Lieferadresse ist.
* **`WHERE o.date_add BETWEEN ‚2023-01-01 00:00:00‘ AND ‚2023-12-31 23:59:59’`**:
* Filtert die Ergebnisse, um nur Bestellungen innerhalb des angegebenen Zeitraums einzubeziehen.
**Wichtige Hinweise:**
* **Datenbankpräfix:**
* Stelle sicher, dass du das korrekte Datenbankpräfix verwendest. Wenn dein Präfix nicht `ps_` ist, ersetze es entsprechend.
* **Datumsformat:**
* Überprüfe, ob das Datumsformat in der `WHERE`-Klausel mit dem Format der `date_add`-Spalte in deiner Datenbank übereinstimmt.
* **Adressen:**
* Bitte beachte, dass in PrestaShop verschiedene Adressarten existieren (Lieferadresse, Rechnungsadresse). Falls Rechnungsadressen benötigt werden, muss die „join bedingung“ zu „o.id\_address\_invoice = a.id\_address“ geändert werden.
* **Sicherheit:**
* Sei vorsichtig beim Ausführen von SQL-Abfragen, insbesondere in einer Produktionsumgebung. Sichere die Datenbank, bevor du Änderungen vornimmst.
* **Anpassung:**
* Du kannst die ausgewählten Spalten in der `SELECT`-Klausel nach Bedarf anpassen.