【发布时间】:2015-05-26 13:47:24
【问题描述】:
我有三张桌子:
// table item
+-------+-------+----------+
| ID | Cat | SubCat |
+-------+-------+----------+
| A001 | 001 | 001 |
+-------+-------+----------+
| A002 | 001 | 000 |
+-------+-------+----------+
// table category
+-------+-------------+
| ID | CatName |
+-------+-------------+
| 001 | MyCategory |
+-------+-------------+
// table subcategory
+-------+--------+---------------+
| ID | CatID | SubCatName |
+-------+------------------------+
| 001 | 001 | MySubCategory |
+-------+--------+---------------+
Cat 表示商品所属的类别id
SubCat 表示商品所属的子类id
SubCat是可选的,如果没有子类,0会被填上
我尝试查询:
select [Item].[ID], [Category].[CatName], [Subcategory].[SubCatName]
from [Item],
[Category],
[Subcategory]
where [Item].[Cat] = [Category].[ID]
and [Item].[SubCat] = [Subcategory].[ID]
这将成功选择记录A001,即返回"A001", "MyCategory", "MySubCategory"
但我也想选择记录 A002,因为 SubCat 是可选字段
例如"A002", "MyCategory", "N/A"
我尝试使用CASE,但似乎访问不支持它。
有没有办法在单个 SQL 查询中执行此操作,例如使用 JOIN?
【问题讨论】: