我有两张table,结构如下:
create table article (
id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
title varchar(50) NOT NULL,
text text,
date timestamp NOT NULL default CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=1;
create table article_relate (
article_id_1 int NOT NULL,
article_id_2 int NOT NULL
);
表“article”中的示例记录
id title
--------------------------------------
1 About Ferrari
2 About Lamborghini
3 About my friends
4 About my kitchen
在第二个表-“article\ U relates”中,我描述了第一个表中类似主题记录的关系。
article_id_1 article_id_2
-----------------------------------
1 2
2 1
当我添加下一篇文章时,我会将它链接到我所知道的关于相同主题的第一篇文章。 Insert into article (id, title) values (5, 'About Maserati');
以及一个id=2的类似文章的链接
Insert into article_relate (article_id_1, article_id_2) values (5, 2); Insert into article_relate (article_id_1, article_id_2) values (2, 5);
现在我想向数据库发送一个查询,以获取与关于id=5的文章相关的所有条目。同样,那些与id=2相关的条目。此查询的结果应该是id=5、2和1的记录
应该构建什么查询来获得这种效果?
你能帮助我吗?
2条答案
按热度按时间knpiaxh11#
听起来像连接子句:
将列出文章id 5的所有相关文章。这对你有帮助吗?
关于加入mysql-https://dev.mysql.com/doc/refman/8.0/en/join.html
tktrz96b2#
您可以简单地将select与内部select查询一起使用。