2017-07-04 82 views
0

我在我的數據庫中有3個表,分類,子類別和文章。 「我的文章」表中包含列分類ID和子類別ID的列,這些是表類別和子類別的外鍵。查詢一個表,從另一個表中獲取名稱

我的問題是,我怎樣才能得到僅存儲在我的文章表中的ID的類別和子類別的名稱。

我想我需要一種子查詢或連接。

以下是我有:

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

當我執行在MySQL的代碼,有沒有誤差修改,但我得到0的結果。所有表都包含一些數據。

+0

個人建議:嘗試格式化您的SQL語句 - 看看[SQL風格指南](http://www.sqlstyle.guide/) - 正確的格式化SQL語句可以幫助您解決問題並進一步簡化所有更改爲你和你的夥伴們 –

回答

1

改變這一點:

where SubcategoryID = (select SubcategoryName from Subcategories 

這個

where SubcategoryID in (select SubcategoryID from Subcategories 

的變化是

  1. 現在等號這個詞in
  2. 子查詢中選擇的,而不是SubCategoryName
+0

謝謝,它的工作:) –

0

SubcategoryID使用連接:

SELECT a.ArticleTitle AS ArticleTitle, c.CategoryName AS類別名稱,s.SubcategoryName AS SubcategoryName

FROM

文章a JOIN類別c on a.CategoryID = c.ID JOIN子類別s上a.SubcategoryID = s.ID

WHERE s.SubcategoryName ='info';

相關問題