Ich habe 3 Tabellen; Posteingang, Postausgang und Nachrichten.MySQL mehrere Schlüssel in einer einzigen Zeile
Für eine einzelne Nachricht sehen die Daten so aus.
Nachricht:
+----------+----------------+
|message_id|content |
+----------+----------------+
|1 |'lorem ipsum...'|
Posteingang:
+--------+----------+-----+-------+
|inbox_id|message_id|to_id|from_id|
+--------+----------+-----+-------+
|1 |1 |1 |1 |
|2 |1 |2 |1 |
|3 |1 |3 |1 |
Outbox:
+---------+----------+-----+-------+
|outbox_id|message_id|to_id|from_id|
+---------+----------+-----+-------+
|1 |1 |1,2,3|1 |
Ein einzelner Benutzer PMs an mehrere Personen schicken. Für jeden Empfänger wird ein neuer Inbox-Datensatz generiert.
Wie jetzt, im Generieren eines Outbox-Datensatzes unabhängig von Empfängern.
Nach Senden einer PM kann ich genau die oben gezeigten Daten erzeugen, aber ich habe Probleme, Benutzernamen für den Ausgang zu generieren.
Ich würde gerne in der Lage sein, so etwas für den Ausgang zu tun (die folgende Abfrage ist, was ich erreichen möchte, aber natürlich nicht funktioniert).
SELECT
users.username,
messages.message_id,
messages.subject
FROM
messages
JOIN
outbox ON outbox.message_id = message.message_id
JOIN
users ON users.user_id IN (outbox.to_id)
WHERE
outbox.from_id = 1
Das Ergebnis Ende
+-------------------+----------+----------------+
|username |message_id|subject |
+-------------------+----------+----------------+
|user1, user2, user3|1 |'lorem ipsum...'|
Ich hatte Angst, dass das die Antwort sein würde. Vielen Dank für Ihre Hilfe, mein Herr! – castis
Ja, das Speichern einer Liste von IDs in einem Feld ist nicht die beste Idee. Das habe ich auch gelernt. Sie können/tun es, aber es ist nicht die beste Option. –