所以,我正在尝试加入2个表来从一个查询中获取结果,但问题是此查询显示重复的帖子,例如帖子和两个用户中只有一个帖子,它会重复两个用户的帖子并将它们复制,就好像它们是
一样$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");
答案 0 :(得分:0)
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
答案 1 :(得分:0)
通过添加括号来更改您的查询,以便更好地对OR
对进行分组
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
例如,请检查此SQL fiddle。