繁体   English   中英

查询一个表,以从另一个表获取名称

[英]Query one table, to get name from another table

我的数据库中有3个表,类别,子类别和文章。 “我的文章”表包含名为“类别ID”和“子类别ID”的列,它们是表“类别”和“子类别”的外键。

我的问题是,如何获取仅作为ID存储在我的文章表中的类别和子类别的名称。

我想我需要一种子查询或联接。

这是我所拥有的:

SELECT ArticleTitle
      ,CategoryID
      ,SubcategoryID 
  FROM Articles 
 WHERE SubcategoryID = 
        (SELECT SubcategoryName 
           FROM Subcategories 
          WHERE SubcategoryName = 'info'
         )      

当我在mysql中执行此代码时,没有错误,但是我收到0个结果。 所有表都包含一些数据。

改变这个:

where SubcategoryID = (select SubcategoryName from Subcategories 

对此

where SubcategoryID in (select SubcategoryID from Subcategories 

变化是

  1. 现在等号这个词in
  2. 子查询正在选择SubcategoryID而不是SubCategoryName

使用联接:

选择a.ArticleTitle AS ArticleTitle,c.CategoryName AS CategoryName,s.SubcategoryName AS SubcategoryName

文章a.CategoryID = c.ID上的JOIN类别c在a.SubcategoryID = s.ID上的JOIN子类别s

WHERE s.SubcategoryName ='info';

暂无
暂无

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

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