MySQL加入3表技巧

时间:2012-02-12 07:55:59

标签: mysql sql join

我无法获得我想要的结果,让我解释一下:

我有两张桌子:

  • 类别
  • 项目

和他们之间的另一个表格链接:

  • ASSIGNED_CAT ,包含2列:PROJECT_IDCATEGORY_ID

ASSIGNED_CAT中,我获得了CATEGORIESPROJECTS的ID。


现在我需要获取包含PROJECTS的CATEGORIES,如果没有则不显示它们。

实施例
如果CATEGORY 1有项目显示CATEGORY NAME,如果没有,则显示。

有什么想法欺骗这个吗?我尝试过很多SQL JOIN而没有成功。

1 个答案:

答案 0 :(得分:1)

我猜你错过了EXISTS条款。

以下查询选择交叉表中至少存在一行的所有类别。

SELECT category_name
FROM categories c
WHERE EXISTS (
    SELECT 1
    FROM assigned_cat ac
    WHERE ac.category_id = c.category_id
)