我的数据库中有3个表,分类,子类别和文章。 我的文章表包含了类别ID和子类别ID的列,它们是表类别和子类别的外键。
我的问题是,如何才能将类别和子类别的名称仅作为ID存储在我的文章表中。
我想我需要一种子查询或加入。
这就是我所拥有的:
SELECT ArticleTitle
,CategoryID
,SubcategoryID
FROM Articles
WHERE SubcategoryID =
(SELECT SubcategoryName
FROM Subcategories
WHERE SubcategoryName = 'info'
)
当我在mysql中执行此代码时,没有错误,但我收到0结果。所有表都包含一些数据。
答案 0 :(得分:1)
改变这个:
where SubcategoryID = (select SubcategoryName from Subcategories
到这个
where SubcategoryID in (select SubcategoryID from Subcategories
变化是
in
。答案 1 :(得分:0)
使用联接:
选择a.ArticleTitle AS ArticleTitle, c.CategoryName AS CategoryName,s.SubcategoryName AS SubcategoryName
FROM
文章a关于a.CategoryID = c.ID的JOIN类别c关于a.SubcategoryID = s.ID的子类别
WHERE s.SubcategoryName =' info';