2013-08-06 46 views
0

我有兩個表名爲OFFICE_GROUP和OFFICE_IPS,獲取從表中多個記錄符合條件

OFFICE_GROUP

OFFICEIPS

我希望得到的結果一樣得到這樣的4行: RESULT

使用的查詢是:

SELECT (SELECT oip.IP as IP FROM OFFICE_IPS oip, OFFICE_GROUP og WHERE og.OFFICE_GROUP_ID = oip.OFFICE_GROUP_ID 
     AND og.MODULES like '%1%' lIMIT 1) AS SEMINAR, 
(SELECT oip.IP as IP FROM OFFICE_IPS oip, OFFICE_GROUP og WHERE og.OFFICE_GROUP_ID = oip.OFFICE_GROUP_ID 
     AND og.MODULES like '%2%' lIMIT 1) AS FAQ, 
(SELECT oip.IP as IP FROM OFFICE_IPS oip, OFFICE_GROUP og WHERE og.OFFICE_GROUP_ID = oip.OFFICE_GROUP_ID 
     AND og.GRP_LIMIT like '%1%' lIMIT 1) AS DEV_MODE, 
(SELECT oip.IP as IP FROM OFFICE_IPS oip, OFFICE_GROUP og WHERE og.OFFICE_GROUP_ID = oip.OFFICE_GROUP_ID 
     AND og.GRP_LIMIT like '%2%' lIMIT 1) AS META_API, 
(SELECT oip.IP as IP FROM OFFICE_IPS oip, OFFICE_GROUP og WHERE og.OFFICE_GROUP_ID = oip.OFFICE_GROUP_ID 
     AND og.GRP_LIMIT like '%3%' lIMIT 1) AS TRADING_SIGNAL 

如果我想獲得多行,我的意思是如果子查詢返回多行。

在上面的查詢,如果我刪除了」 ... LIMIT 1' ,那麼,得到錯誤像 #1242 - 子查詢返回多個1行

任何人,請幫助我。

+0

爲什麼子查詢爲什麼不參加? –

+0

@dianuj,感謝您的意見,我正在學習mysql,所以如果你給出了一個粗略的想法如何將其轉換爲連接將是偉大的 –

+0

看到我的答案查詢加入 –

回答

0

您應該在頂級查詢的FROM部分執行子查詢,而不是在SELECT中執行。 儘量做到像

SELECT seminar, faq, dev_mode, meta_api, trading_signal 
FROM (subselect) as seminars_table, (subselect) as faq_table.... 
WHERE join_contition_1 and join_condition_1; 

的子選擇則需要包含聯接列。

0

嘗試對加入

SELECT oip.IP AS SEMINAR ,oip.IP AS FAQ ,oip.IP AS DEV_MODE ,oip.IP AS META_API 
,oip.IP AS TRADING_SIGNAL 
FROM OFFICE_IPS oip 
INNER JOIN og.OFFICE_GROUP_ID = oip.OFFICE_GROUP_ID  
WHERE (og.MODULES LIKE '%1%' OR og.MODULES LIKE '%2%') 
AND (og.GRP_LIMIT LIKE '%1%' OR og.GRP_LIMIT LIKE '%2%' 
OR og.GRP_LIMIT LIKE '%3%')