2016-08-01 91 views
-2

我有SQLite數據庫中的3個表 - 產品,CategoryProduct_MM(產品類別)和Facing(產品的順序)。 Products表包含PrdID(INTEGER),CategoryProduct_MM包含CategoryID(INTEGER)和PrdID(INTEGER),Facing包含CategoryID,PrdID和Order(全部爲INTEGER)。如果產品的類別中面對表中,我必須基於這樣結合兩個SQLite查詢

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

幫助我們幫助您 - 請分享表結構,一些示例數據,你想獲取該樣品的結果。 – Mureinik

+0

Sql union聲明可以在這裏幫助 – user1050134

+0

@Mureinik添加了詳細信息 –

回答

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