Ich bin ein Thread-Messaging-Dienst zusammen und ich versuche, meinen Kopf eine Runde eine bestimmte Abfrage zu wickeln. Ich versuche gerade, eine Prozedur zu erstellen, die die thread_id zurückgibt, wenn ein Array von user_ids bereitgestellt wird.MYSQL Wählen Sie Nachricht Thread-ID durch mehrere Benutzer-IDs
Es gibt nur zwei Spalten in der Tabelle: thread_id & user_id. Ich habe 4 Zeilen in der Tabelle für den Test:
INSERT INTO thread_users (`thread_id`, `user_id`) VALUES (1,1);
INSERT INTO thread_users (`thread_id`, `user_id`) VALUES (1,70);
INSERT INTO thread_users (`thread_id`, `user_id`) VALUES (2,1);
INSERT INTO thread_users (`thread_id`, `user_id`) VALUES (2,21);
Diese Beispiele Benutzer 1 messaging 70 Benutzer den ersten Thread zu beginnen und dann 21 Benutzernachrichten Thread zu starten 2;
Da ich bereits die IDs beider Benutzer habe, was ich versuche abzuleiten, finde ich die thread_id basierend auf der Liste der Benutzer, die den Thread "abonniert" haben.
Es wird mehr Daten durch ein paar verbindet fordert sein, obwohl ich möchte nicht, dass es in dieser Frage sind ... Also, mit dieser sagte, lets verkürzen nur die Abfrage:
SELECT DISTINCT `thread_id`
FROM `thread_participants`
WHERE `thread_participants`.`user_id` IN (1, 21)
GROUP BY `thread_id`
davon sollten zurückkehren 2.
ich erkennen, dass diese Abfrage die richtige zurückgeben sollte thread_id welken, wenn zwei Benutzer dort zu einem Faden oder 20. Jede Hilfe wäre sehr dankbar :-) Sie verbunden ist, danken !
Können Sie ein Beispiel für eine Ausgabe geben, die Sie versuchen zu bekommen? – Tin
(von der ursprünglichen Frage - "Von denen sollte 2. zurückgeben.") Also, Abfrage mit dem Benutzer-ID-Array (1,21) -> 2 -oder- (1, 70) -> 1. es würde eine Zeile zurückgeben und die ausgewählte Spalte wäre thread_id – user3617416