Mysql 如何比较两个表中的数据并显示一个表中的数据
我有两个表,结构如下:Mysql 如何比较两个表中的数据并显示一个表中的数据,mysql,sql,join,Mysql,Sql,Join,我有两个表,结构如下: categories id status name created posts id status category_id title excerpt featured_image created user_authors id status author_name created 我正在使用以下查询: $query = "SELECT posts.i
categories
id
status
name
created
posts
id
status
category_id
title
excerpt
featured_image
created
user_authors
id
status
author_name
created
我正在使用以下查询:
$query = "SELECT posts.id, posts.category_id, user_authors.author_name, posts.user_author_id, posts.title, posts.post_slug, posts.featured_image, posts.excerpt, posts.created FROM posts, user_authors INNER JOIN categories ON(posts.category_id = categories.id) WHERE posts.status = 1 AND categories.name LIKE = %".$_GET['category']."%";
我想做的是,我有一个urlwww.xyz.com/technology
其中技术是一个参数(类别),根据这一点,我将选择显示的职位
我正在显示数据,其中posts.category\u id=categories.id和category\u name=$\u GET['category']
我无法提取任何数据,我不知道我的查询是错误的还是我的逻辑是错误的
有人能帮我解决这个逻辑吗?您的查询有一个
=
和类似的,这在中是不正确的。正确的做法应该是,
categories.name LIKE '%". $_GET['category']."%'"
注意删除=
并用'
编辑:
根据您的回复,新查询应该如下所示
SELECT posts.id, posts.category_id, user_authors.author_name, posts.user_author_id, posts.title, posts.post_slug, posts.featured_image, posts.excerpt, posts.created
FROM posts INNER JOIN categories ON posts.category_id = categories.id
INNER JOIN user_authors ON posts.id = user_authors.id
WHERE posts.status = 1 AND categories.name LIKE '%".$_GET['category']."%'"
考虑从select中删除用户作者,因为命令中没有链接三个表的联接。您不能将=
与LIKE
子句一起使用,并且您没有在posts
和用户作者
表之间写入任何关系
正确的查询应该是:
$query = "SELECT posts.id, posts.category_id, user_authors.author_name, posts.user_author_id, posts.title, posts.post_slug, posts.featured_image, posts.excerpt, posts.created FROM posts INNER JOIN user_authors ON (user_authors.id = posts.user_author_id) INNER JOIN categories ON (posts.category_id = categories.id) WHERE posts.status = 1 AND categories.name LIKE '%".$_GET['category']."%'";
如果您只查找一个类别.name
您可以从查询中删除%
,如果类别.name
列有索引,这将有助于mysql搜索记录 它仍然在显示未知列的帖子。“on子句”中的category\u id
@AkshayShrivastav使用新的查询加入帖子和用户作者更新了答案帖子与用户作者的关系如何?我看不到那两张桌子之间的连接键。id
inuser\u authors
表中的id
是否指posts
表中的id
我正在显示数据,所以我只需要作者姓名就可以显示此帖子是由某位作者发布的。user\u authors
表中的id
是否指posts表中的id
?如果不是,则您的查询正在进行交叉联接,其中每个帖子都从用户作者处获取所有条目,我认为这不是您所期望的正确行为。是的,正如您所说,它引用了。联接到类别表是什么?我会像本例中那样嵌套用户作者表查找。未知列错误是因为用户\作者中不存在posts.category\ id