Intereting Posts
Петля внутри петли Добавить rel = canonical только на одну страницу Как опубликовать сообщение с двумя или более авторами? Запретить редакторам редактировать / удалять учетные записи администратора Список с категориями, подкатегориями и сообщениями пользовательского posttype Переписать одинарный шаблон постоянной ссылки? URL-адреса изображений становятся беспорядочными после миграции Атрибут более одного пользователя к типу сообщения, который также имеет отношения s / mime подпись исходящей почты делать больше действий после публикации публикации Как получить учетную запись пользователя из Social Login зарегистрированным пользователям? sanitize vimeo embed code? Автоматически перемещать ожидающие сообщения через 30 дней и обновлять дату публикации, когда пользователи обновляют сообщения WP_Query для работы с пользовательским представлением Скрыть категории от показа над сообщением

Запрос WordPress SQL JOIN

Привет, я пытаюсь запустить 2 запроса в одном и том же запросе.

// send the query global $wpdb; $commentQ = "SELECT * FROM $wpdb->comments " . $whereClause . $orderBy; $comments = $wpdb->get_results( $commentQ, ARRAY_A); 

Пока это работает, но когда я пытаюсь запустить 2 запроса, это терпит неудачу. Я хочу сделать это, я хочу запустить:

 **SELECT * FROM `wp_88_commentmeta` ORDER BY `wp_88_commentmeta`.`meta_value` ASC LIMIT 0 , 30** 

Я пытаюсь получить meta_value только из этой таблицы.

Поэтому мой вопрос: как я могу вызвать 2 запроса в одном вызове, и если это лучший способ сделать это?

РЕДАКТИРОВАТЬ:

Я хочу присоединиться к комментариям $ wpdb-> с комментарием. Im только пытается получить поле «meta_value».

  global $wpdb; $commentQ = "SELECT * FROM $wpdb->comments " . $whereClause . $orderBy; $comments = $wpdb->get_results( $commentQ, ARRAY_A); // build the string $commentString = ""; $count = 0; if( $comments ){ $first = true; foreach( $comments as $row ){ if( $first ){ // column labels foreach ( $row as $col => $value ){ //$commentString .= $col . chr( 9 ); 

После того, как я присоединяюсь к таблицам, я хочу получить «meta_value» из wp_commentmeta_88 и вставить вместо «comment_author»,

  // Column Author if($col == 'comment_author') { $commentString .= 'User Meta '; } // Column IP if($col == 'comment_author_IP') { $commentString .= ' IP '; } // Column date if($col == 'comment_date') { $commentString .= ' Datum '; } // Column comment if($col == 'comment_content') { $commentString .= ' Meddelande '; } } $commentString .= chr( 13 ); $first = false; } 

Solutions Collecting From Web of "Запрос WordPress SQL JOIN"

Если вы собираетесь сделать это SQL, используйте подзапрос.

 SELECT *, (SELECT meta_value FROM wp_commentmeta WHERE meta_key = 'your-meta-key' AND wp_commentmeta.comment_id = wp_comments.comment_ID LIMIT 1) as comment_author FROM wp_comments 

Вместо * перечислите нужные поля, но не оставляйте comment_author . Очевидно, $wpdb функции $wpdb сохраняют прямые имена таблиц.

Используйте ключевое слово MySQL NATURAL RIGHT JOIN

 SELECT * FROM table_name1 NATURAL RIGHT JOIN table_name2; 

Вы можете добавить WHERE, ORDER BY