2015-12-30 73 views
0

我想在兩個簡單的表上寫一個查詢。表很簡單,查詢不是:)SQLITE:內聯視圖還是嵌套子查詢?

反正... 這裏是數據庫方案: enter image description here

這裏是表內容的概述:

enter image description here

我試圖編寫一個查詢來列出相應表中的所有資產,只有當它們被標記爲「wanted」(意味着boolean字段asset_owned = 0)並且被另一個所有者引用爲「owned」時。

這是我迄今爲止,它的工作原理:

SELECT 
    user.user_pseudo AS REQUESTER, 
    asset.asset_sku AS SKU, 
    asset.asset_name AS ASSET_NAME 
FROM 
    asset 
INNER JOIN user ON asset.id_user = user.id 
WHERE 
    asset.asset_owned = 0 
AND 
    asset.asset_sku IN (SELECT asset.asset_sku FROM asset WHERE asset.asset_owned = 1) 

但是,在同一個查詢(如果可能的話),我想獲得所有者名稱爲好。

這些表這樣一個查詢的第一個結果是:

我,003,Test003,你。

我試過在線SELECT和嵌套子查詢,如:

SELECT 
user.user_pseudo as ASKER, 
asset.asset_sku as SKU, 
asset.asset_name as NAME, 
subquery1.user.user_pseudo as OWNER 
FROM 
asset 
INNER JOIN user ON asset.id_user = user.id, 
(SELECT user.user_pseudo.asset_asset_sku FROM asset INNER JOIN user ON asset.id_user = user.id WHERE asset.asset_owned = 1) subquery1 
WHERE 
asset.asset_owned = 0 AND 
subquery1.asset.asset_sku IN (SELECT asset.asset_sku FROM asset INNER JOIN user ON asset.id_user = user.id WHERE asset.asset_owned=1) 

但當然不工作的。

感謝您指點我的任何方向。

新年快樂

馬蒂亞斯

回答

1

所以這對我來說樂趣(我正在學習SQL,所以這是很好的做法!) - 我欣賞的很清楚的問題。

希望這對你有用 - 我使用了兩個子查詢('擁有者'和'請求者'各一個),然後加入SKU和名稱。它在SQLite中使用上面顯示的小樣本數據。

SELECT requester, subq1.SKU, subq1.name, owner 
FROM 
    (SELECT pseudo AS requester, SKU, name 
    FROM asset, user 
    WHERE owned = 0 
    AND user.id = id_user) subq1, 
    (SELECT pseudo AS owner, SKU, name 
    FROM asset, user 
    WHERE owned = 1 
    AND asset.id_user = user.id) subq2 
WHERE subq1.SKU = subq2.SKU 
AND subq1.name = subq2.name; 
+0

工程就像一個魅力,我學會了如何使用子查詢謝謝你。 非常感謝新年快樂! – Mathmathou