2017-07-06 78 views
0

如何在外部SELECT子句中返回d.titleu.nameSQL:從嵌套查詢中獲取屬性

SELECT c.id, c.name 
FROM components c 
INNER JOIN publications p 
ON c.id = p.component_id 
AND p.document_id IN 
    (SELECT d.id FROM documents d WHERE user_id IN 
     (SELECT u.id FROM users u WHERE u.brand_id IN (39, 41) 
    ) 
) 

我得到這個錯誤,當我在上面一行扔d.title:在

missing FROM-clause entry for table "d" LINE 1 

包我使用的需求,這些價值上一行返回作出任何利用了出來結果。

結構

一個User有許多Documents,並且PublicationsDocumentsComponents之間的連接表。

+3

如果您顯示了表的結構,那麼給出明確的答案會更容易一些,但通常,使用連接而不是IN子句可以讓您引用要應用標準的表。 –

+0

正如@rd_nielsen所說,如果你想在select語句中引用它們,你將需要加入這些表(p.document_id = documents.id和documents.user_id = users.id)。 –

回答

2

使用下面的查詢 -

SELECT c.id, c.name, d.title, u.name 
FROM components c 
INNER JOIN publications p ON c.id = p.component_id 
INNER JOIN documents d ON d.id = p.document_id 
INNER JOIN users u ON d.user_id = u.id 
AND u.brand_id IN (39, 41) 

希望這有助於。

+0

這非常有幫助。乾杯! –