繁体   English   中英

Sql子查询中的内部联接

[英]inner join in Sql Subquery

我正在尝试使用子查询来运行此查询,但无法获取我的结果。这里有谁可以帮助我正确地进行查询。

SELECT u.uv_id ID
     , d.sd_code Code
     , u.uv_name Title
     , u.uv_nirf Nirf
     , (SELECT sd_code 
          FROM vm_university_type t
          JOIN vm_seo_detail d
            ON t.ut_id = d.sd_ty_id 
           AND d.sd_ty = 'vm_university_type') AS 'University Type' 
     , a.ab_name 'Approved By' 
     , u.uv_seats Seats
     , g.ug_name 'University Group'
  FROM vm_universities u
  JOIN vm_seo_detail d
    ON u.uv_id = d.sd_ty_id 
   AND d.sd_ty = 'vm_universities'
  JOIN vm_university_type t
    ON u.uv_ut_id = t.ut_id
  JOIN vm_approved_by a
    ON u.uv_ab_id = a.ab_id
  JOIN vm_caste c
    ON u.uv_c_id = c.caste_id
  JOIN vm_university_groups g
    ON u.uv_ug_ids = g.ug_id;

我收到此错误Subquery returns more than 1 row

您根本不需要子查询。 SELECT语句中的Code ”列包含University Type

请尝试以下查询。

SELECT vm_universities.uv_id AS 'ID' , vm_seo_detail.sd_code AS 'Code', 
vm_universities.uv_name AS 'Title' , vm_universities.uv_nirf AS 'Nirf', 
vm_approved_by.ab_name AS 'Approved By' , vm_universities.uv_seats as 'Seats',
vm_university_groups.ug_name AS 'University Group'
FROM vm_universities INNER JOIN vm_seo_detail
ON (vm_universities.uv_id = vm_seo_detail.sd_ty_id
      AND vm_seo_detail.sd_ty = 'vm_universities')
INNER JOIN vm_university_type
ON (vm_universities.uv_ut_id = vm_university_type.ut_id) 
INNER JOIN vm_approved_by
ON (vm_universities.uv_ab_id = vm_approved_by.ab_id) 
INNER JOIN vm_caste
ON (vm_universities.uv_c_id = vm_caste.caste_id) 
INNER JOIN vm_university_groups
ON (vm_universities.uv_ug_ids = vm_university_groups.ug_id);
(SELECT `sd_code` FROM vm_university_type INNER JOIN vm_seo_detail ON (vm_university_type.ut_id = vm_seo_detail.sd_ty_id AND vm_seo_detail.sd_ty = 'vm_university_type') WHERE vm_university_type.ut_id=vm_universities.uv_ut_id ) AS 'University Type' ,
SELECT `sd_code` FROM vm_university_type INNER JOIN vm_seo_detail ON (vm_university_type.ut_id = vm_seo_detail.sd_ty_id AND vm_seo_detail.sd_ty = 'vm_university_type')

看起来您忘记了子查询中的WHERE部分,它将其绑定到主查询。 就像是

WHERE vm_university_type.ut_id=vm_universities.uv_ut_id

PS。 如果已经在主查询中加入了vm_university_type,为什么还需要这个子查询呢?

暂无
暂无

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

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