【问题标题】:How can I combine two SQL queries using INNER JOIN?如何使用 INNER JOIN 组合两个 SQL 查询?
【发布时间】:2019-09-04 12:18:19
【问题描述】:

我有 2 个 SQL 查询如下:

$results2 = $wpdb->get_results("SELECT * FROM `wp_posts` WHERE id IN (".implode(",", $product_ids).")");
$getprice = $wpdb->get_results("SELECT * FROM `wp_postmeta` WHERE meta_key='_regular_price' AND post_id IN (".implode(",", $product_ids).")");

我已将它们组合为以下查询:

$yeni = $wpdb->get_results("SELECT wp_posts.id, wp_posts.post_title, wp_postmeta.meta_value 
                            FROM wp_posts 
                            INNER JOIN wp_postmeta ON wp_posts.id = wp_postmeta.post_id 
                            WHERE meta_key = '_regular_price' 
                            WHERE wp_posts.id IN (".implode(",", $product_ids).")");

组合查询后,结果为空。我找不到更新后的查询的问题。

【问题讨论】:

  • 从两个表中添加示例数据以及您的预期输出。这会有所帮助。同时标记您的数据库名称。
  • 轻松为您提供帮助:minimal reproducible example

标签: php sql wordpress


【解决方案1】:

试试这个 sql。 我已经替换了这个WHERE meta_key = '_regular_price'

$yeni = $wpdb->get_results("SELECT wp_posts.id, wp_posts.post_title, wp_postmeta.meta_value FROM wp_posts INNER JOIN wp_postmeta ON wp_posts.id = wp_postmeta.post_id WHERE wp_posts.id IN (".implode(",", $product_ids).") and wp_postmeta.meta_key = '_regular_price'");

【讨论】:

    【解决方案2】:

    我不明白您为什么不通过 OOP 过程使用原生 Wordpress 功能。 你的简单查询,可以这样翻译:

    <?php
    $loop = new WP_Query( 
        array( 
            'post_type' => 'page', // post type: page, post, attachment etc..
            'post__in' => $productIds, // array[]
            )
        );
    // after that, you can use a standard wordpress loop
    if($loop->have_posts()) {
        while($loop->have_posts()) {
            : $loop->the_post();
            the_title();
            print "<br>";
            // access to meta key _regular_price
            print get_post_meta(get_the_ID(), '_regular_price', true);
        }
    }
    

    这是正确的方法。 干杯

    此处的类参考:https://developer.wordpress.org/reference/classes/wp_query/

    【讨论】:

      猜你喜欢
      • 2017-05-03
      • 2012-11-04
      • 2015-01-10
      • 2014-02-24
      • 2018-01-27
      • 1970-01-01
      • 2018-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多