我正在尝试完成从一个表到另一个表的 MySQL 连接,但它不起作用。理想情况下,我希望能够使用准备好的语句(因为它更安全),但现在我只是想让它正常工作。
这是我的数据库设置:
帖子:
id | title | text
1 | Evening | Something here...
2 | Trip away | Bets place to go...
标签:
post_id | tag
1 | weather
1 | Autumn
2 | Holidays
到目前为止,这是我的尝试:
$tag = mysqli_real_escape_string($_GET['tag']);
$select = mysqli_query($mysqli, "SELECT posts.id, posts.title FROM posts INNER JOIN tags ON tags.tag = ".$tag);
但是这不起作用。 我想做的是选择所有已搜索到的具有相关标签的帖子,然后将其输出给用户。请帮助我,我真的被困住了
编辑:While 循环输出数据
$select = mysqli_query($mysqli, "SELECT posts.id, posts.title FROM posts INNER JOIN tags ON tags.post_id = posts.id WHERE tags.tag = ".$tag);
while($row = mysqli_fetch_array($select)) {
echo print_r($row);
}
最佳答案
你的内部连接语法不正确
SELECT posts.id, posts.title
FROM posts
INNER JOIN tags ON tags.post_id = posts.id
WHERE tags.tag = "some_tag_here"
您需要将两个表连接在一起,然后使用 WHERE 按标签进行过滤
关于php - MySQL JOIN 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26223705/