Как я могу решить синтаксическую ошибку в MariaDB, когда я использую DataStudio - PullRequest
0 голосов
/ 27 марта 2020

Я делаю персонализированный запрос в Data Studio, который изначально был сделан в mysql, но у меня была следующая ошибка, когда я использую одно из полей результата.

Ошибка с оператором SQL: в синтаксисе SQL возникла ошибка; проверьте руководство, соответствующее вашей версии сервера MariaDB, для правильного синтаксиса для использования рядом с '> =' 20200301 'AND <=' 20200331 ')' в строке 34 </p>

Это запрос и поле с ошибкой это pm.meta_value, которое связано с pm.meta_key:

SELECT
p.ID as código,
p.post_title,
pm.meta_value,
entidad.name,
CASE WHEN tv.URL != ''
            THEN 'SI'
            ELSE 'NO'
END,
t.name,
tv.URL,
p.post_date
FROM wp_posts p
  LEFT JOIN wp_postmeta pm on p.ID = pm.post_id
  LEFT JOIN wp_term_relationships rs ON p.ID=rs.object_id
  LEFT JOIN wp_term_taxonomy tt ON rs.term_taxonomy_id = tt.term_taxonomy_id
  INNER JOIN wp_terms AS t ON tt.term_id = t.term_id
  LEFT JOIN  (select p.ID, pm.meta_value as URL FROM wp_posts p
            LEFT JOIN wp_postmeta pm on p.ID = pm.post_id
            where pm.meta_key in ('test')
            and pm.meta_value != ''
            ) as tv on p.ID = tv.ID
  INNER JOIN (select p.ID, t.name name, tt.taxonomy taxonomy FROM wp_posts p
              LEFT JOIN wp_term_relationships rs ON p.ID=rs.object_id
  LEFT JOIN wp_term_taxonomy tt ON rs.term_taxonomy_id = tt.term_taxonomy_id
              INNER JOIN wp_terms AS t ON tt.term_id = t.term_id
            ) as entidad on p.ID = entidad.ID
WHERE p.post_type ='test1'
  AND p.post_status =  'test2'
  AND pm.meta_key = 'test3'
  AND entidad.taxonomy = 'test4'
  AND (tt.term_id = 15 OR
       tt.term_id = 174 OR 
       tt.term_id = 1960);

1 Ответ

0 голосов
/ 08 апреля 2020

Ошибка была, когда я назвал переменную p.ID как «códi go», потому что MariaDB или DataStudio не принимают знак ударения в букве o.

...