Intereting Posts
получить имя пользователя на странице автора Пользовательская подпись появляется дважды на странице Что означает «и» означает infront переменной? Вертикальное выравнивание CSS толкает колонку влево Использование короткого кода в заголовке сообщения Файл CSS не регистрируется через add_action Почему ввод текста в Quick Draft или комментарии исключает двойные пробелы? Форматирование ошибок DateTime Могут ли плагины, которые фильтруют содержимое сообщения, работать с сообщениями Word 2007? Как изменить атрибут title "Просмотреть все сообщения в категории" Проблема с налоговыми запросами Какие шаблоны / функции необходимы в пользовательской теме, чтобы дать комментарии новым способом 3.0 Как заставить пользовательский тип сообщения использовать конкретный шаблон? В каком файле использовать $ wpdb и его функции для операций с базами данных и запросов в wordpress? Проверка телефона WordPress

Запрос 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