Sql子查询中的内连接

时间:2017-06-27 12:47:54

标签: mysql sql

我正在尝试使用子查询来运行此查询,但无法获取我的结果。这里的任何一个都可以帮助我确定它是正确的。

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

3 个答案:

答案 0 :(得分:1)

根本不需要子查询。 Code语句中的SELECT列包含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);

答案 1 :(得分:1)

(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' ,

答案 2 :(得分:0)

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,为什么你需要这个子查询呢?