我有两个名为OFFICE_GROUP和OFFICE_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 - 子查询返回多行
任何人,请帮助我。
答案 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;
然后,Subselects需要包含连接列。
答案 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%' )