我有两个select语句,我想通过它们的公共列加入它们:

第一个查询:


  通过self_code从obj_port组中选择self_code作为“ DSLAM_code”,count(self_code)作为“ Registered”;


输出:

+------------+------------+
| DSLAM_code | Registered |
+------------+------------+
| 10000      |        317 |
| 10001      |        344 |
| 10002      |         93 |
+------------+------------+


第二个查询:


  选择substring_index(dslamportid,“:”,1)作为DSLAM_code,
  count(substring_index(dslamportid,“:”,1))从radacct激活为
  dslamportid像'%:%'一样由substring_index(dslamportid,“:”,1)分组;


输出:

+------------+--------+
| DSLAM_code | Active |
+------------+--------+
| 10000      |    265 |
| 10001      |    299 |
| 10002      |     83 |
+------------+--------+


我尝试使用以下查询将两个输出表联接失败:


  选择A.self_code作为“ DSLAM_code”,选择A.count(self_code)作为“已注册”
  来自obj_port由F.self_code组左联接(选择
  substring_index(dslamportid,“:”,1)作为dslam,
  count(substring_index(dslamportid,“:”,1))作为radacct的计数,其中
  类似于'%:%'的dslamportid,由substring_index(dslamportid,“:”,1))B分组
  在A.self_code = B.dslam;


我得到语法错误:


  错误代码:1064。检查
  与您的MySQL服务器版本相对应的手册
  在“左连接”附近使用的语法(选择
  substring_index(dslamportid,“:”,1)作为dslam,count(substring_'行)
  2


预先感谢亲爱的社区!

最佳答案

好的,我找到了一种方法:


  选择a.DSLAM_code,a。已注册,b.active从(选择self_code
  作为'DSLAM_code',从obj_port组将count(self_code)作为'Registered'
  通过self_code)左联接(选择
  substring_index(dslamportid,“:”,1)作为DSLAM_code,
  count(substring_index(dslamportid,“:”,1))从radacct激活为
  dslamportid像'%:%'一样由substring_index(dslamportid,“:”,1))b分组
  在a.dslam_code = b.dslam_code;上

07-26 04:06