如下表所示。
~~~~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可以从文章表中获取article_title、article_content及其各自的类别,例如2.1、3.1和4.1。
我尝试使用内部联接进行一些查询,但是没有成功地获得我想要的结果。
希望我说的够清楚了。
发布于 2015-04-29 12:22:27
您可以使用子查询来完成这个任务。例如:
SELECT article_title, article_content
FROM articles
WHERE category_id IN (
SELECT category_id_fk FROM user_categories WHERE user_id_fk = 1
)与联接相同的示例:
SELECT article_title, article_content
FROM articles
JOIN user_categories ON category_id = category_id_fk
WHERE user_id_fk = 1发布于 2015-04-29 12:23:31
这样能行吗?
SELECT article_title,article_content
FROM articles
WHERE category_id IN
(
SELECT category_id
FROM user_categories
WHERE user_id_fk = 2
)https://stackoverflow.com/questions/29943397
复制相似问题