Mysql запрос не возвращает ожидаемый результат на mysql 5.6.10 и 5.6.46? - PullRequest
0 голосов
/ 06 февраля 2020

Когда я выполняю следующий запрос:


SELECT
  node_field_data.title,
  node_field_data.type,
  node_field_data.status,
  node_field_data.nid,
  node_field_data.created AS node_field_data_created 
FROM
  node_field_data 
  LEFT JOIN
    (
      SELECT
        taxonomy_term_field_data.*,
        taxonomy_index.nid 
      FROM
        taxonomy_term_field_data 
        LEFT JOIN
          taxonomy_index 
          ON taxonomy_index.tid = taxonomy_term_field_data.tid 
      WHERE
        taxonomy_term_field_data.vid IN 
        (
          'blog_post_tags'
        )
    )
    taxonomy_term_field_data_node_field_data 
    ON node_field_data.nid = taxonomy_term_field_data_node_field_data.nid 
WHERE
  (
(taxonomy_term_field_data_node_field_data.name = 'lung cancer')
  )
  AND 
  (
(node_field_data.status = '1')
  )
  LIMIT 1;

Я получаю следующий результат:

+------------------------------------------+-----------+--------+-------+-------------------------+
| title                                    | type      | status | nid   | node_field_data_created |
+------------------------------------------+-----------+--------+-------+-------------------------+
| xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx| blog_post |      1 | 14339 |              1332187581 |
+------------------------------------------+-----------+--------+-------+-------------------------+

Затем я добавляю предложение where AND (node_field_data.type IN ('blog_post') следующим образом

SELECT
  node_field_data.title,
  node_field_data.type,
  node_field_data.status,
  node_field_data.nid,
  node_field_data.created AS node_field_data_created 
FROM
  node_field_data 
  LEFT JOIN
    (
      SELECT
        taxonomy_term_field_data.*,
        taxonomy_index.nid 
      FROM
        taxonomy_term_field_data 
        LEFT JOIN
          taxonomy_index 
          ON taxonomy_index.tid = taxonomy_term_field_data.tid 
      WHERE
        taxonomy_term_field_data.vid IN 
        (
          'blog_post_tags'
        )
    )
    taxonomy_term_field_data_node_field_data 
    ON node_field_data.nid = taxonomy_term_field_data_node_field_data.nid 
WHERE
  (
(taxonomy_term_field_data_node_field_data.name = 'lung cancer')
  )
  AND 
  (
(node_field_data.status = '1') 
    AND node_field_data.type = 'blog_post'
  )
;

и я не получаю результата (empty set (0.001 sec), если он существует из предыдущего запроса, существует тип blog_post.

Стоит отметить, что использование одних и тех же данных БД на другом mysql сервере версия 5.6.43 работа. Проблема возникает на mysql версия 5.6.10

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...