MySQL 在一次连接中只能使用 61 个表;如何绕过以下查询的此错误?

标签 mysql sql database

我收到一个 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;

我需要一个不需要更改当前编写查询的方法的解决方案。

最佳答案

我认为如果不对存储和查询数据的方式进行一些精细的更改,就不可能完成您的要求。你可以

  1. 非规范化您的数据库以存储 JSON 数据;
  2. 创建物化 View ,通过触发器模拟它们,因为它们在 MySQL 中不存在;
  3. 使用临时表;
  4. 在调用站点手动加入部分选择;
  5. 使用另一个连接限制编译 MySQL;
  6. 使用适当的 SQL 引擎,如 Postgres,doesn't suffer从这些愚蠢的事情。

关于MySQL 在一次连接中只能使用 61 个表;如何绕过以下查询的此错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37745471/

相关文章:

php - mysqli_fetch_array() 中的警告

mysql - 将行插入多对多表,但避免 FK 查找/子查询

php - 如何在 PHP MySQL 的 while 循环内运行嵌套语句?

sql - 如何通过ssms中的select插入值?我尝试时遇到错误

sql - SQL 归档存储过程的最佳实践

java - 甲骨文数据库 : DBMS_ALERT usage with java application

database - 带评分的检查/考试问题/答案的架构

php - 更改 mysql 查询以仅在指定日期显示任务

sql - 在子查询中使用count并获取错误

database - 有没有办法只清除 Postgres 统计数据 xact_commit 和 xact_rollback?