繁体   English   中英

从表中获取符合条件的多个记录

[英]Fetch Multiple records from the Table matching the conditions

我有两个名为OFFICE_GROUP和OFFICE_IPS的表,

OFFICE_GROUP

办公软件

我想得到像这样的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的错误-子查询返回多于1行

任何人,请帮助我。

您应该在顶级查询的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;

然后,子选择需要包含联接列。

尝试加入

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%' )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM