2017-10-05 116 views
0

這必須是相當直接的,因爲我傾向於使用ORM,我不必經常弄髒我的手,因此掙扎!MySQL查詢從另一個查詢中存在ID的表中獲取字段

我有一個數據庫,想從表中得到幾個字段,該位是容易..

SELECT main_table.registration_number, main_table.registered_name FROM main_table; 

我想基於另一個表,這也很容易篩選結果..

SELECT second_table.registration_number FROM second_table WHERE this_field = '' AND that_field = '0'; 

現在的問題是我要運行基於第二查詢第一查詢結果集,我的想法是這樣的:

SELECT main_table.registration_number, main_table.registered_name FROM main_table WHERE main_table.registration_number IN (SELECT * FROM second_table WHERE this_field = '' AND that_field = '0'); 

這給了我:錯誤代碼:1241.操作數應該包含1列(s)

我處理這完全錯誤?

回答

1

你必須選擇一列

SELECT main_table.registration_number,main_table.registered_name FROM MAIN_TABLE WHERE main_table.registration_number IN(SELECT registration_number FROM second_table WHERE this_field = '' AND that_field = '0' );

+0

謝謝!這是我需要做的 – Torrm

2

你的子查詢應該做類似下面,

(選擇表*)的子查詢是不是你真正需要做的 這樣子查詢應返回一列

(SELECT registration_number FROM second_table WHERE this_field = '' AND that_field = '0'); 

您不能在多個列中返回多個列子查詢像 那樣,這樣做會導致這樣的錯誤

相關問題