2013-07-09 136 views
0

我遇到了來自子查詢的列結果問題。使用MySQL的子查詢無效結果

當我寫查詢:

select Q1.numi, Q1.sir from (select numi, sir from cust_vehicle where topg = 'VU') Q1 
inner join (select id_contact, sir, ni from cust_contact) Q2 on Q1.sir = Q2.sir 

我得到2個輸出列(NUMI和爵士)。

但是,如果我改變上述查詢像一個子查詢:

select Q3.* 
from (
select Q1.numi, Q1.sir from (select numi, sir from cust_vehicle where topg = 'VU') Q1 
inner join (select id_contact, sir, ni from cust_contact) Q2 on Q1.sir = Q2.sir 
) Q3 

我只得到了第一列輸出(NUMI場)。

爲什麼我有這種行爲?

有關信息,我使用了MySQL 5.6.11在OS X 10.8

+0

至於爲什麼要使用子查詢,據我可以看到所有你需要的是一個基本的加入一個側面說明? –

+0

http://sqlfiddle.com/#!9/162e8/3 ....您的查詢似乎正確輸出數據。你試圖執行這件事?通過任何編程代碼? –

+0

我使用MySQL Workbench。有點奇怪。 – ChriX

回答

0
SELECT cv.numi 
    , cv.sir 
    , cc.id_contact 
    , cc.ni 
    FROM cust_vehicle cv 
    JOIN cust_contact cc 
    ON cc.sir = cv.sir 
WHERE cv.topg = 'VU' 
+0

你不覺得你回答OP的問題嗎?我知道他知道如何獲得他想要的信息。然而,當他做了別的事情時,他得到了意想不到的結果,並問爲什麼。 – nurdglaw

1

我找到了問題的根源。它是MySQL Workbench。 我打開了一個新的SQL表格並在其中粘貼了我的查詢。現在,一切正常。

感謝您的幫助:)

+0

我一直是命令行的忠實粉絲。如果我要用IDE,它會是蟾蜍,我用過的其他每一個都是不合適的。 –