簡體   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