0

OFFICE_GROUP と OFFICE_IPS という 2 つのテーブルがあります。

オフィス_グループ

オフィスIPS

次のような4行を取得するような結果を取得したいと思います: 結果

使用されるクエリは次のとおりです。

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 - サブクエリが複数の行を返すのようなエラーが発生します

誰でも、私を助けてください。

4

2 に答える 2

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%' )
于 2013-08-06T08:04:25.020 に答える
0

SELECT ではなく、最上位クエリの FROM 部分でサブクエリを実行する必要があります。みたいにやってみる

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;

次に、サブセレクトに結合列を含める必要があります。

于 2013-08-06T07:53:23.857 に答える