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']."%";
我想做的是,我有一个url
www.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
in
user\u authors
表中的
id
是否指
posts
表中的
id
我正在显示数据,所以我只需要作者姓名就可以显示此帖子是由某位作者发布的。
user\u authors
表中的
id
是否指
posts表中的
id
?如果不是,则您的查询正在进行交叉联接,其中每个帖子都从用户作者处获取所有条目,我认为这不是您所期望的正确行为。是的,正如您所说,它引用了。联接到类别表是什么?我会像本例中那样嵌套用户作者表查找。未知列错误是因为用户\作者中不存在posts.category\ id