结合两个sqlite查询

时间:2016-08-01 08:29:40

标签: sqlite

我在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 = ?;

如何在一个查询中组合它们?

1 个答案:

答案 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';