CREATE VIEW `report_central_class` AS
SELECT a.*,b.course_title,b.outline_id,c.catid,d.main_title,
(select comp_name
from lang_company_details
where comp_id = (select comp_id
from lang_company_details_courses
where course_id=a.course_id)
) as company,
(select concat(fname,' ',lname)
from lang_course_instructors
where slno=a.class_inst_id) as instname
FROM `lang_course_details_session` as a,
`lang_course_details` as b,
`lang_course_outline` as c,
`lang_course_category` as d
where a.`class_status` != '' and
a.course_id=b.course_id and
c.outline_id=b.outline_id and
c.catid=d.slno;
create view ステートメントを使用せずにこのクエリを実行すると、データベースから適切なレコードが返されます。しかし、ビューから同じものを実行しようとすると、サブクエリが複数の行を返すことを示しています。
この問題はサブクエリにあります:
( select comp_name
from lang_company_details
where comp_id = (
select comp_id
from lang_company_details_courses
where course_id=a.course_id
)
) as company
このクエリを削除すると、すべてが正常に機能しますが、このクエリではビューが機能しません。