2014-10-31 86 views
0

我試圖寫形式的查詢:多個元素

SELECT 
    field_a.table AS x, 
    field_b.table AS y, 
    (SELECT 
     field_a.tableb AS a, 
     field_b.tableb AS b, 
    FROM tableb) FROM table 

不過,我得到了以下錯誤消息:操作數應包含1列(S)

是有什麼辦法可以做到或者我將不得不求助於多個子查詢?我只是認爲它效率很低。

乾杯

+0

請給出更多細節:表和表格定義,預期輸出,理想情況下的一些示例數據... – 2014-10-31 17:48:07

+0

** tableb **和**表之間的關係是什麼** – 2014-10-31 17:56:24

+0

選擇列表的每個元素對應於*一個*結果列。特別是,出現在選擇列表中的子查詢必須產生具有單個列的單個結果行。 – 2014-10-31 18:31:09

回答

1

對於您提出的查詢作出任何意義,它必須是該表tableb只有一個行的情況。在這種情況下,你可以通過連接而不是子查詢來實現你的目標。也許這是你想要什麼:

SELECT 
    table.field_a AS x, 
    table.field_b AS y, 
    tableb.field_a AS a, 
    tableb.field_b AS b 
FROM 
    table CROSS JOIN tableb 

事實上,如果tableb有多個行,每行以某種方式與table具體哪一行相關,那麼你就不是使用一個連接對應的適當關係謂詞執行[INNER] JOIN 。如果你想要更具體的東西,那麼你需要更好地描述你的數據。