Нужна помощь в построении правильного mysql запроса

iJoGol

Творец (III)
Сообщения
17
Симпатии
6
Баллы
339
Приветствую Гуру MySql ! Очень нужна ваша помощь....

Вводная информация (которая вам возможно не понадобится):
Использую cms Wordpress актуальной версии плагин ACF и плагин WpDataTable
Моя цель работа с таблицами и внесение данных в таблицы формируемые плагином WpDataTable через произвольные поля поста формируемые плагином acf...

Для получения данных из произвольных полей поста WpDataTable использует sql запрос - для этого плагин имеет встроенный конструктор sql запросов, но он мне там такую дичь наворотил, что получай я 2 - 5 полей все бы работало не плохо, но мне нужно получить сотни данных из сотен полей, в итоге он мне наворотил sql запрос на 500 строк...

Вот пример кода при получении 2 полей (post.post_title и post.meta.adres_obekta)
Код:
SELECT posts_post.post_title AS post_post_title,
       post_meta_adres_obekta_tbl.meta_value AS post_meta_adres_obekta
FROM wp_posts AS posts_post
  INNER JOIN (SELECT post_meta_adres_obekta_tbl_posts.ID as id, meta_value, meta_key  FROM wp_postmeta AS post_meta_adres_obekta_tbl_postmeta  INNER JOIN wp_posts AS post_meta_adres_obekta_tbl_posts   ON post_meta_adres_obekta_tbl_postmeta.post_id = post_meta_adres_obekta_tbl_posts.ID   AND post_meta_adres_obekta_tbl_posts.post_type = 'post') AS post_meta_adres_obekta_tbl
     ON post_meta_adres_obekta_tbl.meta_key = 'adres_obekta' AND post_meta_adres_obekta_tbl.id = posts_post.ID
WHERE 1=1
   AND posts_post.post_type = 'post'

Он работает - но дело в том, что в таком духе он мне каждое поле получает и выходит цитируя @Starwanderer портянка на 500 строк и 60 с гаком таблиц...

Подскажите пожалуйста как написать этот же запрос правильнее ?
 
Последнее редактирование:
Такой дичи давно не видел, чтобы алиасы полей (таблиц) (н-р, post_meta_zaklyuchenie_ekspertizy_proektnoj_dokumentaczii_nomer_zaklyucheniya_tbl_postmeta) были из 90 символов!!!
Данный конструктор не просто не помог, он создал какой-то немыслимый ребус, который не читается.
Начните "поедать слона по частям". Возьмите структуру нужных таблиц БД и составьте сами запрос без всяких конструкторов.
 
Такой дичи давно не видел, чтобы алиасы полей (таблиц) (н-р, post_meta_zaklyuchenie_ekspertizy_proektnoj_dokumentaczii_nomer_zaklyucheniya_tbl_postmeta) были из 90 символов!!!
Данный конструктор не просто не помог, он создал какой-то немыслимый ребус, который не читается.
Начните "поедать слона по частям". Возьмите структуру нужных таблиц БД и составьте сами запрос без всяких конструкторов.
понимать бы мне чуточку больше в mysql
 
Опиши задачу полностью. По запросу невозможно прочитать твои мысли.
У меня есть предположение, что хочешь сделать онлайн базу данных.
WP для этого не самый удачный инструмент.
Может тебе подскажут что-то более удобное для этих целей.
 
Опиши задачу полностью. По запросу невозможно прочитать твои мысли.
У меня есть предположение, что хочешь сделать онлайн базу данных.
WP для этого не самый удачный инструмент.
Может тебе подскажут что-то более удобное для этих целей.
Не базу данных, у меня большой опыт работы с ВП и для этой цели (а мне нужно формировать проекты, на базе этих проектов формировать документы) с моим опытом - это самый удачный вариант, тем более что подобраны все плагины, все по логике сходится, и уже протестировано на небольшом объеме данных, единственная задрочка моя это то, что не могу грамотно передать в плагин предусмотренными им средствами большой объем данных путем sql запроса
 
Если вы хотите получить данные из сотен полей для формирования таблицы, то использование SQL-запроса может быть не самым эффективным решением, особенно если вы хотите использовать произвольные поля WordPress, созданные с помощью плагина ACF.

Вместо этого я бы порекомендовал использовать функции API WordPress для доступа к данным произвольных полей, в том числе ACF. Например, вы можете использовать функцию get_field() для получения значения конкретного поля ACF для определенного поста. Эту функцию можно использовать в цикле, чтобы получить значения всех нужных вам полей для всех нужных вам постов.

Например, вот как можно получить значения двух полей (adres_obekta и post_title) для всех постов типа "post":

Скрытое содержимое. Вам нужно войти или зарегистрироваться.

Вы можете модифицировать этот пример, чтобы получить значения других полей ACF и добавить их в таблицу. Этот подход более гибкий и позволяет избежать сложных SQL-запросов.
 
Назад
Верх