我在SQLite db中有3个表 - Products,CategoryProduct_MM(产品类别)和Facing(产品订单)。 Products表包含PrdID(INTEGER),CategoryProduct_MM包含CategoryID(INTEGER)和PrdID(INTEGER),Facing包含CategoryID,PrdID和Order(所有INTEGER)。如果面对表中存在产品类别,我必须根据此类订单对产品进行分类
SELECT p.* FROM Products p INNER JOIN Facing f ON p.PrdID = f.PrdID WHERE f.CategoryID = ? ORDER BY f.'Order';
在另一种情况下,我必须从像这样的产品中选择
SELECT p.* FROM Products p INNER JOIN CategoryProduct_MM cp ON p.PrdID = cp.PrdID WHERE cp.CategoryID = ?;
如何在一个查询中组合它们?
答案 0 :(得分:0)
这是正确的查询
SELECT p.*
FROM Products p
INNER JOIN CategoryProduct_MM cp
ON (p.PrdID = cp.PrdID AND cp.CategoryID = ?)
LEFT JOIN Facing f
ON (f.PrdID = cp.PrdID AND f.CategoryID = cp.CategoryID)
ORDER BY f.'Order';