2017-03-13 3 views
0

Also, ich versuche, 2 Tabellen zu verbinden, um Ergebnisse von ihnen in einer Abfrage zu erhalten, aber das Problem ist, dass diese Abfrage doppelte Beiträge anzeigt, zum Beispiel gibt es nur einen Beitrag in den Beiträgen und zwei Anwender, wird dieses Amt für beide Benutzer kopieren und duplizieren, als ob sieBeitritt zwei Seiten doppelte Ergebnisse zurückgegeben

$keywords = $mysqli->escape_string($_GET['search_prototype']); 

$result = $mysqli->query(" 
SELECT posts.id, posts.content, posts.user_id, posts.date, users.name, users.lastname, users.id, users.avatar_location 
FROM posts, users WHERE posts.content LIKE '%$keywords%' OR users.name LIKE '%$keywords%' AND posts.user_id = users.id ORDER BY posts.id DESC"); 

Antwort

0
waren

Ihre Anfrage durch Hinzufügen Klammer zu einer besseren Gruppe der OR Paar

SELECT posts.id, 
     posts.content, 
     posts.user_id, 
     posts.date, users.name, 
     users.lastname, 
     users.id, 
     users.avatar_location 
FROM posts, users 
WHERE (posts.content LIKE '%$keywords%' OR users.name LIKE '%$keywords%') 
AND posts.user_id = users.id 
ORDER BY posts.id DESC 

prüfen diese SQL fiddle zum Beispiel.

0

Verwenden LEFT JOIN

SELECT posts.id, posts.content, posts.user_id, posts.date, users.name, users.lastname, users.id, users.avatar_location FROM users LEFT JOIN posts ON posts.user_id = users.id WHERE posts.content LIKE '%$keywords%' OR users.name LIKE '%$keywords%' ORDER BY posts.id DESC 
+0

Vielen Dank. Ich habe dies am Ende hinzugefügt 'code' SELECT posts.id, posts.content, posts.user_id, posts.date, users.name, users.lastname, users.id, users.avatar_location FROM Benutzer Links JOIN Beiträge ON posts.user_id = users.id WHERE posts.content LIKE '% $ keywords%' ODER users.name LIKE '% $ keywords%' UND posts.user_id = users.id ORDER BY posts.id DESC es wurde noch angezeigt alle Benutzer, schätze die Abfrage ist richtig? @Yolo – Nathan

+0

es ist nicht notwendig, da Sie bereits Beiträge von Benutzer-ID auf Benutzer-ID beitreten. – Yolo

Verwandte Themen