Views that has some settings and circumstances cause error below:

PDOException: SQLSTATE[HY000]: General error: 1116 Too many tables; MySQL can
only use 61 tables in a join

Here is the settings and circumstances:

View:
- base table is node
- has relation_A as field_x of node
- has filter with field_y of field_x entity NOT match some of target entity

Node:
- has field_x (reference for taxonomy_term, vocabulary_x)

Vocabulary x:
- has field_y (reference for taxonomy_term_z)
- has more than 100 terms

Vocabulary z:
- has more than 100 terms

(see attached image)

Below is SQL built with views (prior to 7.x-3.21 and after 7.x-3.21) respectedly (I edited them to hide some information, so forgive me it is not valid SQL).

# 2019-03-27 edited header text below (was describing wrong version number)

Sample of SQL built (~views-7.x-3.20)

SELECT
  node.nid AS nid

FROM
   {node} node
       LEFT JOIN {field_data_field_x} field_data_field_x2
              ON node.nid = field_data_field_x2.entity_id
                 AND ( field_data_field_x2.field_x_tid = '1070'
                        OR field_data_field_x2.field_x_tid = '5474'
                        OR field_data_field_x2.field_x_tid = '9833'
                        OR field_data_field_x2.field_x_tid = '10839'
                        OR field_data_field_x2.field_x_tid = '10840'
                        OR field_data_field_x2.field_x_tid = '10962'
                        OR field_data_field_x2.field_x_tid = '9271'
                        OR field_data_field_x2.field_x_tid = '10108'
                        OR field_data_field_x2.field_x_tid = '8998'
                        OR field_data_field_x2.field_x_tid = '7855'
                        OR field_data_field_x2.field_x_tid = '9111'
                        OR field_data_field_x2.field_x_tid = '9112'
                        OR field_data_field_x2.field_x_tid = '8620'
                        OR field_data_field_x2.field_x_tid = '10864'
                        OR field_data_field_x2.field_x_tid = '8662'
                        OR field_data_field_x2.field_x_tid = '4796'
                        OR field_data_field_x2.field_x_tid = '804'
                        OR field_data_field_x2.field_x_tid = '3723'
                        OR field_data_field_x2.field_x_tid = '2573'
                        OR field_data_field_x2.field_x_tid = '1843'
                        OR field_data_field_x2.field_x_tid = '2875'
                        OR field_data_field_x2.field_x_tid = '2874'
                        OR field_data_field_x2.field_x_tid = '4923'
                        OR field_data_field_x2.field_x_tid = '4872'
                        OR field_data_field_x2.field_x_tid = '8295'
                        OR field_data_field_x2.field_x_tid = '5214'
                        OR field_data_field_x2.field_x_tid = '5427'
                        OR field_data_field_x2.field_x_tid = '6398'
                        OR field_data_field_x2.field_x_tid = '5586'
                        OR field_data_field_x2.field_x_tid = '4284'
                        OR field_data_field_x2.field_x_tid = '5582'
                        OR field_data_field_x2.field_x_tid = '6269'
                        OR field_data_field_x2.field_x_tid = '7422'
                        OR field_data_field_x2.field_x_tid = '10899'
                        OR field_data_field_x2.field_x_tid = '6356'
                        OR field_data_field_x2.field_x_tid = '3047'
                        OR field_data_field_x2.field_x_tid = '4156'
                        OR field_data_field_x2.field_x_tid = '5545'
                        OR field_data_field_x2.field_x_tid = '5667'
                        OR field_data_field_x2.field_x_tid = '6979'
                        OR field_data_field_x2.field_x_tid = '6649'
                        OR field_data_field_x2.field_x_tid = '2307'
                        OR field_data_field_x2.field_x_tid = '8522'
                        OR field_data_field_x2.field_x_tid = '10275'
                        OR field_data_field_x2.field_x_tid = '10271'
                        OR field_data_field_x2.field_x_tid = '9201'
                        OR field_data_field_x2.field_x_tid = '10294'
                        OR field_data_field_x2.field_x_tid = '9309'
                        OR field_data_field_x2.field_x_tid = '5733'
                        OR field_data_field_x2.field_x_tid = '3053'
                        OR field_data_field_x2.field_x_tid = '3996'
                        OR field_data_field_x2.field_x_tid = '3078'
                        OR field_data_field_x2.field_x_tid = '8910'
                        OR field_data_field_x2.field_x_tid = '3995'
                        OR field_data_field_x2.field_x_tid = '2126'
                        OR field_data_field_x2.field_x_tid = '2359'
                        OR field_data_field_x2.field_x_tid = '7301'
                        OR field_data_field_x2.field_x_tid = '1798'
                        OR field_data_field_x2.field_x_tid = '6824'
                        OR field_data_field_x2.field_x_tid = '2948'
                        OR field_data_field_x2.field_x_tid = '3174'
                        OR field_data_field_x2.field_x_tid = '7321'
                        OR field_data_field_x2.field_x_tid = '7355'
                        OR field_data_field_x2.field_x_tid = '1940'
                        OR field_data_field_x2.field_x_tid = '3219'
                        OR field_data_field_x2.field_x_tid = '1647'
                        OR field_data_field_x2.field_x_tid = '5462'
                        OR field_data_field_x2.field_x_tid = '5627'
                        OR field_data_field_x2.field_x_tid = '9123'
                        OR field_data_field_x2.field_x_tid = '3782' )
WHERE  ((
  ( field_data_field_x2.field_x_tid IS NULL )
  AND
  (taxonomy_term_data_field_data_field_x__field_data_field_flag.field_flag_tid IS NULL)
))

Sample of SQL built (views-7.x-3.21)

SELECT
  node.nid AS nid
FROM
   {node} node
       LEFT JOIN {field_data_field_x} field_data_field_x
              ON node.nid = field_data_field_x.entity_id
                 AND ( field_data_field_x.entity_type = 'node'
                       AND field_data_field_x.deleted = '0' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_0
              ON node.nid = field_data_field_x_value_0.entity_id
                 AND ( field_data_field_x_value_0.entity_type = 'node'
                       AND field_data_field_x_value_0.deleted = '0'
                       AND field_data_field_x_value_0.field_x_tid = '1070' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_1
              ON node.nid = field_data_field_x_value_1.entity_id
                 AND ( field_data_field_x_value_1.entity_type = 'node'
                       AND field_data_field_x_value_1.deleted = '0'
                       AND field_data_field_x_value_1.field_x_tid = '5474' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_2
              ON node.nid = field_data_field_x_value_2.entity_id
                 AND ( field_data_field_x_value_2.entity_type = 'node'
                       AND field_data_field_x_value_2.deleted = '0'
                       AND field_data_field_x_value_2.field_x_tid = '9833' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_3
              ON node.nid = field_data_field_x_value_3.entity_id
                 AND ( field_data_field_x_value_3.entity_type = 'node'
                       AND field_data_field_x_value_3.deleted = '0'
                       AND field_data_field_x_value_3.field_x_tid = '10839' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_4
              ON node.nid = field_data_field_x_value_4.entity_id
                 AND ( field_data_field_x_value_4.entity_type = 'node'
                       AND field_data_field_x_value_4.deleted = '0'
                       AND field_data_field_x_value_4.field_x_tid = '10840' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_5
              ON node.nid = field_data_field_x_value_5.entity_id
                 AND ( field_data_field_x_value_5.entity_type = 'node'
                       AND field_data_field_x_value_5.deleted = '0'
                       AND field_data_field_x_value_5.field_x_tid = '10962' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_6
              ON node.nid = field_data_field_x_value_6.entity_id
                 AND ( field_data_field_x_value_6.entity_type = 'node'
                       AND field_data_field_x_value_6.deleted = '0'
                       AND field_data_field_x_value_6.field_x_tid = '9271' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_7
              ON node.nid = field_data_field_x_value_7.entity_id
                 AND ( field_data_field_x_value_7.entity_type = 'node'
                       AND field_data_field_x_value_7.deleted = '0'
                       AND field_data_field_x_value_7.field_x_tid = '10108' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_8
              ON node.nid = field_data_field_x_value_8.entity_id
                 AND ( field_data_field_x_value_8.entity_type = 'node'
                       AND field_data_field_x_value_8.deleted = '0'
                       AND field_data_field_x_value_8.field_x_tid = '8998' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_9
              ON node.nid = field_data_field_x_value_9.entity_id
                 AND ( field_data_field_x_value_9.entity_type = 'node'
                       AND field_data_field_x_value_9.deleted = '0'
                       AND field_data_field_x_value_9.field_x_tid = '7855' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_10
              ON node.nid = field_data_field_x_value_10.entity_id
                 AND ( field_data_field_x_value_10.entity_type = 'node'
                       AND field_data_field_x_value_10.deleted = '0'
                       AND field_data_field_x_value_10.field_x_tid = '9111' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_11
              ON node.nid = field_data_field_x_value_11.entity_id
                 AND ( field_data_field_x_value_11.entity_type = 'node'
                       AND field_data_field_x_value_11.deleted = '0'
                       AND field_data_field_x_value_11.field_x_tid = '9112' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_12
              ON node.nid = field_data_field_x_value_12.entity_id
                 AND ( field_data_field_x_value_12.entity_type = 'node'
                       AND field_data_field_x_value_12.deleted = '0'
                       AND field_data_field_x_value_12.field_x_tid = '8620' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_13
              ON node.nid = field_data_field_x_value_13.entity_id
                 AND ( field_data_field_x_value_13.entity_type = 'node'
                       AND field_data_field_x_value_13.deleted = '0'
                       AND field_data_field_x_value_13.field_x_tid = '10864' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_14
              ON node.nid = field_data_field_x_value_14.entity_id
                 AND ( field_data_field_x_value_14.entity_type = 'node'
                       AND field_data_field_x_value_14.deleted = '0'
                       AND field_data_field_x_value_14.field_x_tid = '8662' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_15
              ON node.nid = field_data_field_x_value_15.entity_id
                 AND ( field_data_field_x_value_15.entity_type = 'node'
                       AND field_data_field_x_value_15.deleted = '0'
                       AND field_data_field_x_value_15.field_x_tid = '4796' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_16
              ON node.nid = field_data_field_x_value_16.entity_id
                 AND ( field_data_field_x_value_16.entity_type = 'node'
                       AND field_data_field_x_value_16.deleted = '0'
                       AND field_data_field_x_value_16.field_x_tid = '804' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_17
              ON node.nid = field_data_field_x_value_17.entity_id
                 AND ( field_data_field_x_value_17.entity_type = 'node'
                       AND field_data_field_x_value_17.deleted = '0'
                       AND field_data_field_x_value_17.field_x_tid = '3723' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_18
              ON node.nid = field_data_field_x_value_18.entity_id
                 AND ( field_data_field_x_value_18.entity_type = 'node'
                       AND field_data_field_x_value_18.deleted = '0'
                       AND field_data_field_x_value_18.field_x_tid = '2573' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_19
              ON node.nid = field_data_field_x_value_19.entity_id
                 AND ( field_data_field_x_value_19.entity_type = 'node'
                       AND field_data_field_x_value_19.deleted = '0'
                       AND field_data_field_x_value_19.field_x_tid = '1843' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_20
              ON node.nid = field_data_field_x_value_20.entity_id
                 AND ( field_data_field_x_value_20.entity_type = 'node'
                       AND field_data_field_x_value_20.deleted = '0'
                       AND field_data_field_x_value_20.field_x_tid = '2875' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_21
              ON node.nid = field_data_field_x_value_21.entity_id
                 AND ( field_data_field_x_value_21.entity_type = 'node'
                       AND field_data_field_x_value_21.deleted = '0'
                       AND field_data_field_x_value_21.field_x_tid = '2874' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_22
              ON node.nid = field_data_field_x_value_22.entity_id
                 AND ( field_data_field_x_value_22.entity_type = 'node'
                       AND field_data_field_x_value_22.deleted = '0'
                       AND field_data_field_x_value_22.field_x_tid = '4923' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_23
              ON node.nid = field_data_field_x_value_23.entity_id
                 AND ( field_data_field_x_value_23.entity_type = 'node'
                       AND field_data_field_x_value_23.deleted = '0'
                       AND field_data_field_x_value_23.field_x_tid = '4872' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_24
              ON node.nid = field_data_field_x_value_24.entity_id
                 AND ( field_data_field_x_value_24.entity_type = 'node'
                       AND field_data_field_x_value_24.deleted = '0'
                       AND field_data_field_x_value_24.field_x_tid = '8295' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_25
              ON node.nid = field_data_field_x_value_25.entity_id
                 AND ( field_data_field_x_value_25.entity_type = 'node'
                       AND field_data_field_x_value_25.deleted = '0'
                       AND field_data_field_x_value_25.field_x_tid = '5214' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_26
              ON node.nid = field_data_field_x_value_26.entity_id
                 AND ( field_data_field_x_value_26.entity_type = 'node'
                       AND field_data_field_x_value_26.deleted = '0'
                       AND field_data_field_x_value_26.field_x_tid = '5427' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_27
              ON node.nid = field_data_field_x_value_27.entity_id
                 AND ( field_data_field_x_value_27.entity_type = 'node'
                       AND field_data_field_x_value_27.deleted = '0'
                       AND field_data_field_x_value_27.field_x_tid = '6398' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_28
              ON node.nid = field_data_field_x_value_28.entity_id
                 AND ( field_data_field_x_value_28.entity_type = 'node'
                       AND field_data_field_x_value_28.deleted = '0'
                       AND field_data_field_x_value_28.field_x_tid = '5586' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_29
              ON node.nid = field_data_field_x_value_29.entity_id
                 AND ( field_data_field_x_value_29.entity_type = 'node'
                       AND field_data_field_x_value_29.deleted = '0'
                       AND field_data_field_x_value_29.field_x_tid = '4284' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_30
              ON node.nid = field_data_field_x_value_30.entity_id
                 AND ( field_data_field_x_value_30.entity_type = 'node'
                       AND field_data_field_x_value_30.deleted = '0'
                       AND field_data_field_x_value_30.field_x_tid = '5582' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_31
              ON node.nid = field_data_field_x_value_31.entity_id
                 AND ( field_data_field_x_value_31.entity_type = 'node'
                       AND field_data_field_x_value_31.deleted = '0'
                       AND field_data_field_x_value_31.field_x_tid = '6269' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_32
              ON node.nid = field_data_field_x_value_32.entity_id
                 AND ( field_data_field_x_value_32.entity_type = 'node'
                       AND field_data_field_x_value_32.deleted = '0'
                       AND field_data_field_x_value_32.field_x_tid = '7422' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_33
              ON node.nid = field_data_field_x_value_33.entity_id
                 AND ( field_data_field_x_value_33.entity_type = 'node'
                       AND field_data_field_x_value_33.deleted = '0'
                       AND field_data_field_x_value_33.field_x_tid = '10899' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_34
              ON node.nid = field_data_field_x_value_34.entity_id
                 AND ( field_data_field_x_value_34.entity_type = 'node'
                       AND field_data_field_x_value_34.deleted = '0'
                       AND field_data_field_x_value_34.field_x_tid = '6356' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_35
              ON node.nid = field_data_field_x_value_35.entity_id
                 AND ( field_data_field_x_value_35.entity_type = 'node'
                       AND field_data_field_x_value_35.deleted = '0'
                       AND field_data_field_x_value_35.field_x_tid = '3047' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_36
              ON node.nid = field_data_field_x_value_36.entity_id
                 AND ( field_data_field_x_value_36.entity_type = 'node'
                       AND field_data_field_x_value_36.deleted = '0'
                       AND field_data_field_x_value_36.field_x_tid = '4156' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_37
              ON node.nid = field_data_field_x_value_37.entity_id
                 AND ( field_data_field_x_value_37.entity_type = 'node'
                       AND field_data_field_x_value_37.deleted = '0'
                       AND field_data_field_x_value_37.field_x_tid = '5545' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_38
              ON node.nid = field_data_field_x_value_38.entity_id
                 AND ( field_data_field_x_value_38.entity_type = 'node'
                       AND field_data_field_x_value_38.deleted = '0'
                       AND field_data_field_x_value_38.field_x_tid = '5667' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_39
              ON node.nid = field_data_field_x_value_39.entity_id
                 AND ( field_data_field_x_value_39.entity_type = 'node'
                       AND field_data_field_x_value_39.deleted = '0'
                       AND field_data_field_x_value_39.field_x_tid = '6979' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_40
              ON node.nid = field_data_field_x_value_40.entity_id
                 AND ( field_data_field_x_value_40.entity_type = 'node'
                       AND field_data_field_x_value_40.deleted = '0'
                       AND field_data_field_x_value_40.field_x_tid = '6649' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_41
              ON node.nid = field_data_field_x_value_41.entity_id
                 AND ( field_data_field_x_value_41.entity_type = 'node'
                       AND field_data_field_x_value_41.deleted = '0'
                       AND field_data_field_x_value_41.field_x_tid = '2307' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_42
              ON node.nid = field_data_field_x_value_42.entity_id
                 AND ( field_data_field_x_value_42.entity_type = 'node'
                       AND field_data_field_x_value_42.deleted = '0'
                       AND field_data_field_x_value_42.field_x_tid = '8522' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_43
              ON node.nid = field_data_field_x_value_43.entity_id
                 AND ( field_data_field_x_value_43.entity_type = 'node'
                       AND field_data_field_x_value_43.deleted = '0'
                       AND field_data_field_x_value_43.field_x_tid = '10275' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_44
              ON node.nid = field_data_field_x_value_44.entity_id
                 AND ( field_data_field_x_value_44.entity_type = 'node'
                       AND field_data_field_x_value_44.deleted = '0'
                       AND field_data_field_x_value_44.field_x_tid = '10271' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_45
              ON node.nid = field_data_field_x_value_45.entity_id
                 AND ( field_data_field_x_value_45.entity_type = 'node'
                       AND field_data_field_x_value_45.deleted = '0'
                       AND field_data_field_x_value_45.field_x_tid = '9201' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_46
              ON node.nid = field_data_field_x_value_46.entity_id
                 AND ( field_data_field_x_value_46.entity_type = 'node'
                       AND field_data_field_x_value_46.deleted = '0'
                       AND field_data_field_x_value_46.field_x_tid = '10294' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_47
              ON node.nid = field_data_field_x_value_47.entity_id
                 AND ( field_data_field_x_value_47.entity_type = 'node'
                       AND field_data_field_x_value_47.deleted = '0'
                       AND field_data_field_x_value_47.field_x_tid = '9309' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_48
              ON node.nid = field_data_field_x_value_48.entity_id
                 AND ( field_data_field_x_value_48.entity_type = 'node'
                       AND field_data_field_x_value_48.deleted = '0'
                       AND field_data_field_x_value_48.field_x_tid = '5733' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_49
              ON node.nid = field_data_field_x_value_49.entity_id
                 AND ( field_data_field_x_value_49.entity_type = 'node'
                       AND field_data_field_x_value_49.deleted = '0'
                       AND field_data_field_x_value_49.field_x_tid = '3053' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_50
              ON node.nid = field_data_field_x_value_50.entity_id
                 AND ( field_data_field_x_value_50.entity_type = 'node'
                       AND field_data_field_x_value_50.deleted = '0'
                       AND field_data_field_x_value_50.field_x_tid = '3996' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_51
              ON node.nid = field_data_field_x_value_51.entity_id
                 AND ( field_data_field_x_value_51.entity_type = 'node'
                       AND field_data_field_x_value_51.deleted = '0'
                       AND field_data_field_x_value_51.field_x_tid = '3078' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_52
              ON node.nid = field_data_field_x_value_52.entity_id
                 AND ( field_data_field_x_value_52.entity_type = 'node'
                       AND field_data_field_x_value_52.deleted = '0'
                       AND field_data_field_x_value_52.field_x_tid = '8910' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_53
              ON node.nid = field_data_field_x_value_53.entity_id
                 AND ( field_data_field_x_value_53.entity_type = 'node'
                       AND field_data_field_x_value_53.deleted = '0'
                       AND field_data_field_x_value_53.field_x_tid = '3995' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_54
              ON node.nid = field_data_field_x_value_54.entity_id
                 AND ( field_data_field_x_value_54.entity_type = 'node'
                       AND field_data_field_x_value_54.deleted = '0'
                       AND field_data_field_x_value_54.field_x_tid = '2126' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_55
              ON node.nid = field_data_field_x_value_55.entity_id
                 AND ( field_data_field_x_value_55.entity_type = 'node'
                       AND field_data_field_x_value_55.deleted = '0'
                       AND field_data_field_x_value_55.field_x_tid = '2359' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_56
              ON node.nid = field_data_field_x_value_56.entity_id
                 AND ( field_data_field_x_value_56.entity_type = 'node'
                       AND field_data_field_x_value_56.deleted = '0'
                       AND field_data_field_x_value_56.field_x_tid = '7301' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_57
              ON node.nid = field_data_field_x_value_57.entity_id
                 AND ( field_data_field_x_value_57.entity_type = 'node'
                       AND field_data_field_x_value_57.deleted = '0'
                       AND field_data_field_x_value_57.field_x_tid = '1798' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_58
              ON node.nid = field_data_field_x_value_58.entity_id
                 AND ( field_data_field_x_value_58.entity_type = 'node'
                       AND field_data_field_x_value_58.deleted = '0'
                       AND field_data_field_x_value_58.field_x_tid = '6824' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_59
              ON node.nid = field_data_field_x_value_59.entity_id
                 AND ( field_data_field_x_value_59.entity_type = 'node'
                       AND field_data_field_x_value_59.deleted = '0'
                       AND field_data_field_x_value_59.field_x_tid = '2948' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_60
              ON node.nid = field_data_field_x_value_60.entity_id
                 AND ( field_data_field_x_value_60.entity_type = 'node'
                       AND field_data_field_x_value_60.deleted = '0'
                       AND field_data_field_x_value_60.field_x_tid = '3174' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_61
              ON node.nid = field_data_field_x_value_61.entity_id
                 AND ( field_data_field_x_value_61.entity_type = 'node'
                       AND field_data_field_x_value_61.deleted = '0'
                       AND field_data_field_x_value_61.field_x_tid = '7321' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_62
              ON node.nid = field_data_field_x_value_62.entity_id
                 AND ( field_data_field_x_value_62.entity_type = 'node'
                       AND field_data_field_x_value_62.deleted = '0'
                       AND field_data_field_x_value_62.field_x_tid = '7355' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_63
              ON node.nid = field_data_field_x_value_63.entity_id
                 AND ( field_data_field_x_value_63.entity_type = 'node'
                       AND field_data_field_x_value_63.deleted = '0'
                       AND field_data_field_x_value_63.field_x_tid = '1940' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_64
              ON node.nid = field_data_field_x_value_64.entity_id
                 AND ( field_data_field_x_value_64.entity_type = 'node'
                       AND field_data_field_x_value_64.deleted = '0'
                       AND field_data_field_x_value_64.field_x_tid = '3219' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_65
              ON node.nid = field_data_field_x_value_65.entity_id
                 AND ( field_data_field_x_value_65.entity_type = 'node'
                       AND field_data_field_x_value_65.deleted = '0'
                       AND field_data_field_x_value_65.field_x_tid = '1647' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_66
              ON node.nid = field_data_field_x_value_66.entity_id
                 AND ( field_data_field_x_value_66.entity_type = 'node'
                       AND field_data_field_x_value_66.deleted = '0'
                       AND field_data_field_x_value_66.field_x_tid = '5462' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_67
              ON node.nid = field_data_field_x_value_67.entity_id
                 AND ( field_data_field_x_value_67.entity_type = 'node'
                       AND field_data_field_x_value_67.deleted = '0'
                       AND field_data_field_x_value_67.field_x_tid = '5627' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_68
              ON node.nid = field_data_field_x_value_68.entity_id
                 AND ( field_data_field_x_value_68.entity_type = 'node'
                       AND field_data_field_x_value_68.deleted = '0'
                       AND field_data_field_x_value_68.field_x_tid = '9123' )
       LEFT JOIN {field_data_field_x} field_data_field_x_value_69
              ON node.nid = field_data_field_x_value_69.entity_id
                 AND ( field_data_field_x_value_69.entity_type = 'node'
                       AND field_data_field_x_value_69.deleted = '0'
                       AND field_data_field_x_value_69.field_x_tid = '3782' )

WHERE  (( ( ( field_data_field_x_value_0.field_x_tid IS NULL )
            AND ( field_data_field_x_value_1.field_x_tid IS NULL )
            AND ( field_data_field_x_value_2.field_x_tid IS NULL )
            AND ( field_data_field_x_value_3.field_x_tid IS NULL )
            AND ( field_data_field_x_value_4.field_x_tid IS NULL )
            AND ( field_data_field_x_value_5.field_x_tid IS NULL )
            AND ( field_data_field_x_value_6.field_x_tid IS NULL )
            AND ( field_data_field_x_value_7.field_x_tid IS NULL )
            AND ( field_data_field_x_value_8.field_x_tid IS NULL )
            AND ( field_data_field_x_value_9.field_x_tid IS NULL )
            AND ( field_data_field_x_value_10.field_x_tid IS NULL )
            AND ( field_data_field_x_value_11.field_x_tid IS NULL )
            AND ( field_data_field_x_value_12.field_x_tid IS NULL )
            AND ( field_data_field_x_value_13.field_x_tid IS NULL )
            AND ( field_data_field_x_value_14.field_x_tid IS NULL )
            AND ( field_data_field_x_value_15.field_x_tid IS NULL )
            AND ( field_data_field_x_value_16.field_x_tid IS NULL )
            AND ( field_data_field_x_value_17.field_x_tid IS NULL )
            AND ( field_data_field_x_value_18.field_x_tid IS NULL )
            AND ( field_data_field_x_value_19.field_x_tid IS NULL )
            AND ( field_data_field_x_value_20.field_x_tid IS NULL )
            AND ( field_data_field_x_value_21.field_x_tid IS NULL )
            AND ( field_data_field_x_value_22.field_x_tid IS NULL )
            AND ( field_data_field_x_value_23.field_x_tid IS NULL )
            AND ( field_data_field_x_value_24.field_x_tid IS NULL )
            AND ( field_data_field_x_value_25.field_x_tid IS NULL )
            AND ( field_data_field_x_value_26.field_x_tid IS NULL )
            AND ( field_data_field_x_value_27.field_x_tid IS NULL )
            AND ( field_data_field_x_value_28.field_x_tid IS NULL )
            AND ( field_data_field_x_value_29.field_x_tid IS NULL )
            AND ( field_data_field_x_value_30.field_x_tid IS NULL )
            AND ( field_data_field_x_value_31.field_x_tid IS NULL )
            AND ( field_data_field_x_value_32.field_x_tid IS NULL )
            AND ( field_data_field_x_value_33.field_x_tid IS NULL )
            AND ( field_data_field_x_value_34.field_x_tid IS NULL )
            AND ( field_data_field_x_value_35.field_x_tid IS NULL )
            AND ( field_data_field_x_value_36.field_x_tid IS NULL )
            AND ( field_data_field_x_value_37.field_x_tid IS NULL )
            AND ( field_data_field_x_value_38.field_x_tid IS NULL )
            AND ( field_data_field_x_value_39.field_x_tid IS NULL )
            AND ( field_data_field_x_value_40.field_x_tid IS NULL )
            AND ( field_data_field_x_value_41.field_x_tid IS NULL )
            AND ( field_data_field_x_value_42.field_x_tid IS NULL )
            AND ( field_data_field_x_value_43.field_x_tid IS NULL )
            AND ( field_data_field_x_value_44.field_x_tid IS NULL )
            AND ( field_data_field_x_value_45.field_x_tid IS NULL )
            AND ( field_data_field_x_value_46.field_x_tid IS NULL )
            AND ( field_data_field_x_value_47.field_x_tid IS NULL )
            AND ( field_data_field_x_value_48.field_x_tid IS NULL )
            AND ( field_data_field_x_value_49.field_x_tid IS NULL )
            AND ( field_data_field_x_value_50.field_x_tid IS NULL )
            AND ( field_data_field_x_value_51.field_x_tid IS NULL )
            AND ( field_data_field_x_value_52.field_x_tid IS NULL )
            AND ( field_data_field_x_value_53.field_x_tid IS NULL )
            AND ( field_data_field_x_value_54.field_x_tid IS NULL )
            AND ( field_data_field_x_value_55.field_x_tid IS NULL )
            AND ( field_data_field_x_value_56.field_x_tid IS NULL )
            AND ( field_data_field_x_value_57.field_x_tid IS NULL )
            AND ( field_data_field_x_value_58.field_x_tid IS NULL )
            AND ( field_data_field_x_value_59.field_x_tid IS NULL )
            AND ( field_data_field_x_value_60.field_x_tid IS NULL )
            AND ( field_data_field_x_value_61.field_x_tid IS NULL )
            AND ( field_data_field_x_value_62.field_x_tid IS NULL )
            AND ( field_data_field_x_value_63.field_x_tid IS NULL )
            AND ( field_data_field_x_value_64.field_x_tid IS NULL )
            AND ( field_data_field_x_value_65.field_x_tid IS NULL )
            AND ( field_data_field_x_value_66.field_x_tid IS NULL )
            AND ( field_data_field_x_value_67.field_x_tid IS NULL )
            AND ( field_data_field_x_value_68.field_x_tid IS NULL )
            AND ( field_data_field_x_value_69.field_x_tid IS NULL ) )
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

Hidehisa created an issue. See original summary.

Anonymous’s picture

We have a similar issue. After upgrading to Views 2.1 on Drupal 7 we receive the same error: "SQLSTATE[HY000]: General error: 1116 Too many tables; MariaDB can only use 61 tables in a join"

pandaski’s picture

Seems that recent changes in `public function ensure_my_table()` is the cause.

      // Case 2: it's anything but an 'or'.
      // We do one join per selected value.

      // Clone the join for each table:
      $this->handler->table_aliases = [];
      foreach ($this->handler->value as $value) {
        $join = $this->get_join();
        if ($this->handler->operator == 'and') {
          $join->type = 'INNER';
        }
        if (empty($join->extra)) {
          $join->extra = [];
        }
        $join->extra[] = [
          'field' => $this->handler->real_field,
          'value' => $value,
          'numeric' => !empty($this->handler->definition['numeric']),
        ];
BrankoC’s picture

There was a recent change that reworked that entire piece of code, unfortunately I cannot find if this was discussed in the issue queue, and if it was, which issue.

SHA-1: fbafd79a763f19d8c06039f3416a1890d5bfe143

* By heddn, klausi, greggles, azinck, dawehner, DamienMcKenna, vijaycs85: Improved handling of exposed field filters.
FeyP’s picture

@brankoc: The commit was made for this security fix and was hence not discussed in the issue queue.

Hidehisa’s picture

Issue summary: View changes
sarguna raj M’s picture

FileSize
70.64 KB

Hi,

I'm also facing the same issue "SQLSTATE[HY000]: General error: 1116 Too many tables; MariaDB can only use 61 tables in a join".
Is there any patch to resolve this issue?

sarguna raj M’s picture

Priority: Major » Critical
pandaski’s picture

Do we have a views export for troubleshooting?

It will be helpful to replicate the issue and find the solution.

DamienMcKenna’s picture

Could you please see if the patch in #3040636: 7.x-3.21 Regression: Duplicate result when using multiple term for a node helps resolve this problem?

FeyP’s picture

Simpler steps to reproduce:

  1. Install Drupal 7.x (default profile) in English.
  2. Install Views and Views UI 7.x-3.x-dev.
  3. Create n+1 tags where n is the join limit of your SQL server (e.g. 62 terms for MySQL). You can use devel_generate's Drush integration: drush gent tags 62.
  4. Add a filter by tags tid and use the following filter configuration:
    • As Operator select Is none of
    • In Select terms from vocabulary Tags select n+1 terms where n is the join limit of your SQL server (e.g. 62 for MySQL)
  5. Execute your view.
FeyP’s picture

Here is a very quick patch that should fix the immediate issue. I didn't have a lot of time to test this for potential regressions, though, so let's see what the test bot says. Note, that the patch will prevent cloning of the join per value, if the not operator is used. Overall, I'm not yet very confident about this, so please test and review thoroughly. And if this ends up to be a bad idea, we can hopefully at least still use the test.

Tagging "needs security review" for updating the security fix.

Sample query with patch:


SELECT node.title AS node_title, node.nid AS nid, node.created AS node_created
FROM
{node} node
LEFT JOIN {field_data_field_tags} field_data_field_tags_value_0 ON node.nid = field_data_field_tags_value_0.entity_id AND (field_data_field_tags_value_0.entity_type = 'node' AND field_data_field_tags_value_0.deleted = '0' AND field_data_field_tags_value_0.field_tags_tid IN ( '36', '60', '178', '112', '118', '14', '126', '99', '145', '67', '120', '180', '197', '75', '119', '31', '1', '4', '86', '44', '152', '47', '173', '159', '50', '73', '149', '188', '184', '29', '27', '128', '139', '56', '156', '97', '179', '121', '168', '138', '17', '63', '33', '94', '59', '105', '45', '61', '130', '16', '53', '154', '124', '52', '82', '91', '195', '76', '196', '108', '172', '34', '72', '176', '26', '189', '146', '137', '122', '133', '123', '7', '127', '19', '22', '162', '11', '41', '70', '186', '48', '125', '140', '79', '28', '15', '58', '177', '100', '95', '129', '166', '202', '90', '115', '135', '192', '62', '155', '78', '102', '12', '71', '21', '5', '84', '131', '88', '32', '64', '143', '134', '89', '77', '198', '49', '87', '42', '30', '20', '151', '39', '92', '203', '142', '116', '68', '148', '46', '13', '74', '190', '23', '132', '69', '43', '66', '101', '98', '96', '57', '150', '35', '153', '93', '199', '54', '169', '174', '158', '55', '110', '85', '157', '175', '160', '9', '107', '161', '104', '117', '164', '106', '144', '81', '18', '114', '103', '165', '171', '8', '163', '83', '136', '37', '204', '167', '38', '80', '185', '65', '25', '51', '201', '40', '141', '113', '111', '170', '187', '181', '194', '193', '183', '10', '24', '200', '109', '182', '6', '147', '191' ))
WHERE (( (node.status = '1') AND( (field_data_field_tags_value_0.field_tags_tid IS NULL ) )))
ORDER BY node_created DESC
LIMIT 10 OFFSET 0

FeyP’s picture

Status: Active » Needs review

My bad.

The last submitted patch, 12: views-3040090-12-test-only.patch, failed testing. View results
- codesniffer_fixes.patch Interdiff of automated coding standards fixes only.

Hidehisa’s picture

Though automated test is failing, I tested views-3040090-12-test-only.patch on my drupal and it worked fine.

Thank you FeyP!

FeyP’s picture

Thank you for trying the patch.

Though automated test is failing, I tested views-3040090-12-test-only.patch on my drupal and it worked fine.

views-3040090-12-test-only.patch contains only the test for this issue without the fix, so it is intended to fail. We use test only patches to make sure that the tests will properly fail, if the functionality is broken. views-3040090-12.patch on the other hand contains the test and the fixes for this issue, so this patch file is what should return green results from the test bot.

If you applied the test only patch and it works for you, then you don't have this issue and you don't need the patch.

DamienMcKenna’s picture

  • DamienMcKenna committed 79ec694 on 7.x-3.x authored by FeyP
    Issue #3040090 by FeyP, Hidehisa, sarguna raj M, Joseph Zhao, BrankoC,...
DamienMcKenna’s picture

Status: Needs review » Fixed

Committed. Thanks!

Hidehisa’s picture

FeyP, thank you for patch, and the patch I applied was views-3040090-12.patch, not test-only.
Just mistake when copy and pasting filename from thread... Sorry for confusion.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.