首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带外键的MySQL查询

带外键的MySQL查询
EN

Stack Overflow用户
提问于 2015-04-29 12:11:33
回答 2查看 63关注 0票数 0

如下表所示。

代码语言:javascript
复制
~~~~articles~~~~~~      ~~~~categories~~~~         ~~~user_categ~~~    ~~users~~~
|  id_articles    |      |  c_id          |       |   user_cat_id  |  _|_user_id |
|  article_title  |     _|_ category_id   |_____  |   user_id_fk   |_/ |user_name|
|  article_content| _ -  |  category_name |     \_|__category_id_fk|   |user_pw  |
|  category_id    |/     |________________|       |________________|   |_________| 
|_________________|

现在,在我的user_categories表中,假设我有以下数据。

代码语言:javascript
复制
| user_id_fk | cat_id_fk |
-------------------------
| 2          | 2.1       |
| 2          | 3.1       |
| 2          | 4.1       |
| 3          | 2.4       |
-------------------------

现在,我想在MySQL中进行一个查询,以便user_id_fk 2可以从文章表中获取article_title、article_content及其各自的类别,例如2.1、3.1和4.1

我尝试使用内部联接进行一些查询,但是没有成功地获得我想要的结果。

希望我说的够清楚了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-29 12:22:27

您可以使用子查询来完成这个任务。例如:

代码语言:javascript
复制
SELECT article_title, article_content 
FROM articles 
WHERE category_id IN (
  SELECT category_id_fk FROM user_categories WHERE user_id_fk = 1
)

与联接相同的示例:

代码语言:javascript
复制
SELECT article_title, article_content 
FROM articles 
JOIN user_categories ON category_id = category_id_fk
WHERE user_id_fk = 1
票数 4
EN

Stack Overflow用户

发布于 2015-04-29 12:23:31

这样能行吗?

代码语言:javascript
复制
SELECT article_title,article_content 
FROM articles
WHERE category_id IN
(
  SELECT category_id
  FROM user_categories
  WHERE user_id_fk = 2
)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29943397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档