繁体   English   中英

带外键的MySQL查询

[英]MySQL query with Foreign Key

我有以下相关的下表,如下所示。

~~~~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表中,假设我有以下数据。

| user_id_fk | cat_id_fk |
-------------------------
| 2          | 2.1       |
| 2          | 3.1       |
| 2          | 4.1       |
| 3          | 2.4       |
-------------------------

现在,我想在MySQL中进行查询,以便使user_id_fk 2从Articles表中获取具有其相应类别(例如2.1,3.1 和4.1)的 article_title,article_content

我尝试使用内部联接进行一些查询,但未成功获得所需的结果。

希望我足够清楚。

您可以使用子查询来实现。 例如:

SELECT article_title, article_content 
FROM articles 
WHERE category_id IN (
  SELECT category_id_fk FROM user_categories WHERE user_id_fk = 1
)

与join相同的例子:

SELECT article_title, article_content 
FROM articles 
JOIN user_categories ON category_id = category_id_fk
WHERE user_id_fk = 1

这样可以吗?

SELECT article_title,article_content 
FROM articles
WHERE category_id IN
(
  SELECT category_id
  FROM user_categories
  WHERE user_id_fk = 2
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM