我有一个如下的关系模式:
INVENTORY(inventoryID,title,wholesale,markup,qtyinStock,discount)
Primary-Key: inventoryID
BOOK(coverType,inventoryID)
Primary-Key: inventoryID
Foreign-Key: inventoryID
DVD(classification,ReleaseYear,StarRating)
Primary-Key: inventoryID
Foreign-Key: inventoryID图书和DVD基本上是库存的子类型。它们是从库存中继承的。现在,我想将清单中的所有项目显示为书籍或DVD,具体取决于表中的项目。我做了以下操作,但我不确定这是否正确:
SELECT title FROM INVENTORY,BOOK,DVD
WHERE INVENTORY.inventoryID = BOOK.inventoryID AND INVENTORY.inventoryID = DVD.inventoryID不过,这不会显示项目的标题。我怎么才能添加它呢?谢谢!
发布于 2016-06-01 23:43:48
除非我读错了你的问题,否则这个查询很简单。您的示例查询提取既是DVD又是Book的库存。
SELECT title,
CASE WHEN b.inventoryID IS NOT NULL THEN 'Book'
WHEN d.inventoryID IS NOT NULL THEN 'DVD'
END AS Category
FROM Inventory i
JOIN Book b on i.inventoryID = b.inventoryID
JOIN DVD d on d.inventoryID = i.InventoryID发布于 2016-06-01 23:36:34
使用WHERE子句中的AND,您将尝试获取库存项目的标题,即图书和dvd。尝试更改和OR的AND
https://stackoverflow.com/questions/37572872
复制相似问题