ich diese AbfrageNull-Werte sql in mysql verbinden
SELECT m.chat_id, m.msg_sender_id, m.message, m.id,
DATE_FORMAT(m.created_at, '%Y-%m-%d %H:%i:%s') as created_at,
g.id as group_id, g.name as group_name, g.image as group_image
FROM message as m
INNER JOIN chat as c ON c.id = m.chat_id
LEFT OUTER JOIN group as g ON c.group_id = g.id
WHERE c.id = 434
ORDER BY m.id ASC
Was will ich erreichen tue, ist alle Mitteilungen im Chat zu bekommen, und wenn es eine Gruppe im Chat beteiligt ist Gruppe zurückzukehren. Die Gruppe ist an das Chat-Objekt angehängt (nicht an das Nachrichtenobjekt). Ich bekomme group
in allen Zeilen aus irgendeinem Grund.
Können Sie beraten, wie kann ich das erreichen?
============= EDIT ==============
group
Tabellenstruktur sieht wie folgt aus:
`id` int(11) NOT NULL AUTO_INCREMENT,
`created_at` datetime(6) NOT NULL,
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`image` longtext COLLATE utf8_bin,
`status` int(11) DEFAULT NULL,
`creator_id` int(11) NOT NULL
chat
Tabellenstruktur wie diese Tabelle sieht wie folgt aus
`id` int(11) NOT NULL AUTO_INCREMENT,
`created_at` datetime(6) NOT NULL,
`group_id` int(11) DEFAULT NULL,
`person1_id` int(11) NOT NULL,
`invitation_id` int(11) NOT NULL,
message
sieht
`id` int(11) NOT NULL AUTO_INCREMENT,
`message` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`created_at` datetime(6) NOT NULL,
`chat_id` int(11) NOT NULL,
`msg_sender_id` int(11) NOT NULL,
Dies ist das Ergebnis aus einer Abfrage
434 14 Some text 900 2017-09-10 09:48:56 3 My group 1 image.jpg
434 13 Some text 2 901 2017-09-10 09:48:59 3 My group 1 image.jpg
434 14 Some text 3 935 2017-09-16 15:37:07 3 My group 1 image.jpg
434 14 Some text 4 968 2017-09-21 06:52:56 3 My group 1 image.jpg
Ich verstehe das Problem nicht wirklich. Ihre Anfrage scheint in Ordnung, aber Sie erhalten mehr Ergebnisse von 'group_group' als erwartet? Bitte fügen Sie einige Beispieldaten hinzu. – HoneyBadger
Hier gibt es keine Gruppe. – Strawberry
Wahrscheinlich haben Sie die ID = 434 in allen drei Tabellen einschließlich der Gruppe, daher erhalten Sie groupName für alle Zeilen. –