2016-06-10 1 views
0

MySQL 오류가 발생하여 조인에 61 개 이상의 테이블을 사용할 수 없습니다. 나는이 오류를 피할 필요가있다. 어떻게해야합니까? 도와주세요.MySQL은 조인에서 61 개의 테이블 만 사용할 수 있습니다. 다음 쿼리에 대해이 오류를 무시할 수 있습니까?

select 
    view_pdg_institutes.user_id as User_ID, 
    view_pdg_institutes.institute_id as Teacher_ID, 
    view_pdg_institutes.institute_name as Institute_Name, 
    view_pdg_institutes.user_email as Email, 
    view_pdg_institutes.contact_person_name as Contact_Person, 
    view_pdg_institutes.alternative_contact_no as Alternative_Mobile_No, 
    view_pdg_institutes.primary_contact_no as Mobile_No, 
    view_pdg_institutes.correspondance_address as Address, 
    view_pdg_institutes.other_communication_mode as Preferred_Contact_Mode, 
    view_pdg_institutes.size_of_faculty as Size_of_Faculty, 
    view_pdg_institutes.operation_hours_from as Operation_Hours_From, 
    view_pdg_institutes.operation_hours_to as Operation_Hours_To, 
    view_pdg_institutes.teaching_xp as Teaching_Experience, 
    view_pdg_institutes.installment_allowed as Installment_Allowed, 
    view_pdg_institutes.about_fees_structure as About_Fees_Structure, 
    view_pdg_institutes.no_of_demo_class as No_of_Demo_Classes, 
    view_pdg_institutes.demo_allowed as Demo_Allowed, 
    view_pdg_institutes.price_per_demo_class as Price_Per_Demo_Class, 
    view_pdg_tuition_batch.tuition_batch_id as Batch_ID, 
    view_pdg_batch_subject.subject_name as Subject_Name, 
    view_pdg_batch_subject.subject_type as Subject_Type, 
    view_pdg_batch_subject.academic_board as Academic_Board, 
    view_pdg_batch_fees.fees_type as Fees_Type, 
    view_pdg_batch_fees.fees_amount as Fees_Amount, 
    view_pdg_tuition_batch.course_days as Course_Days, 
    view_pdg_tuition_batch.days_per_week as Days_Per_Week, 
    view_pdg_tuition_batch.class_duration as Class_Duration, 
    view_pdg_tuition_batch.class_type as Class_Type, 
    view_pdg_tuition_batch.course_length as Course_Length, 
    view_pdg_tuition_batch.course_length_type as Course_Length_Type, 
    view_pdg_tuition_batch.no_of_locations as No_of_Locations, 
    view_pdg_tuition_batch.class_capacity_id as Class_Capacity_ID, 
    view_pdg_tutor_location.locality as Locality, 
    view_pdg_tutor_location.address as Address, 
    view_pdg_batch_class_timing.class_timing as Class_Timing 

    from view_pdg_tuition_batch 

    left join view_pdg_institutes on (view_pdg_tuition_batch.tutor_institute_user_id = view_pdg_institutes.user_id) 
    left join view_pdg_batch_subject on (view_pdg_batch_subject.tuition_batch_id = view_pdg_tuition_batch.tuition_batch_id) 
    left join view_pdg_batch_fees on (view_pdg_batch_fees.tuition_batch_id = view_pdg_tuition_batch.tuition_batch_id) 
    left join view_pdg_batch_class_timing on (view_pdg_batch_class_timing.tuition_batch_id = view_pdg_tuition_batch.tuition_batch_id) 
    left join view_pdg_tutor_location on (view_pdg_tutor_location.tuition_batch_id = view_pdg_tuition_batch.tuition_batch_id) 
group by view_pdg_tuition_batch.tuition_batch_id; 

현재 작성 방법을 변경하지 않아도되는 솔루션이 필요합니다.

+0

메시지의 내용은 무엇입니까? 이 쿼리에는 확실히 61 개 미만의 테이블이 있습니다. –

+0

보기에서 데이터를 쿼리하고 있습니다. 그래서 그것은 아마도 뷰를 해체하고 뷰가 생성되는 개별 테이블을 쿼리하는 것일 수 있습니다. 그것은 61 이상이됩니다. –

+0

알겠습니다. 견해로부터의 요청은 받아 들여지지 않습니다. –

답변

0

각보기의 내용을 자체 임시 테이블에 삽입하십시오. 그런 다음 원래 뷰 이름 대신 임시 테이블 이름을 사용하여 동일한 쿼리를 수행하십시오.

+0

이 쿼리는 현재 쿼리 작성 방법을 변경하지 않아도되는 솔루션으로 간주됩니까? –

0

데이터를 저장하고 쿼리하는 방법에 대한 정교한 변경 없이는 사용자가 원하는 것을 할 수 없다고 생각합니다. 할 수 있습니다

  1. JSON 데이터를 저장하도록 DB를 비정규 화하십시오.
  2. MySQL에서 빠져 있기 때문에 트리거를 통해 에뮬레이트하는 구체화 된 뷰를 생성합니다.
  3. 임시 테이블을 사용하십시오.
  4. 콜 사이트에서 손으로 부분 선택에 참여하십시오.
  5. 다른 조인 한도로 MySQL을 컴파일하십시오.
  6. 그런 어리석은 것들로부터 그 doesn't suffer 그 Postgres와 같은 적절한 SQL 엔진을 사용하십시오.
관련 문제