0

我想知道是否有一种方法可以合并这两个数据库查询以便拥有一个:

$result = $wpdb->get_row("SELECT meta_value FROM ".$wpdb->prefix.
        "postmeta WHERE meta_key = '_cat_num' AND post_id = $var");

$name = $wpdb->get_row("SELECT name FROM ".AH_FEED_DETAILS_TABLE.
        " WHERE id = " . (int)$result->meta_value);

return $name->name;

第一个查询找到类别值,然后使用该值在 AH_FEED_DETAILS_TABLE 表中查找名称字段

4

2 回答 2

2

您可以通过使用带有子查询的 IN 来让数据库为此工作,如下所示:

$name = $wpdb->get_row("SELECT name FROM ".AH_FEED_DETAILS_TABLE.
        " WHERE id IN (SELECT meta_value FROM ".$wpdb->prefix.
        "postmeta WHERE meta_key = '_cat_num' AND post_id = $var)");
于 2012-07-08T10:31:37.053 回答
0
    $result = $wpdb->get_row("SELECT name FROM ".$wpdb->prefix
                    .AH_FEED_DETAILS_TABLE." AS cat_tbl JOIN postmeta ON 
                    cat_tbl.id=postmeta.meta_value 
                    WHERE postmeta.meta_key = '_cat_num' AND postmeta.post_id = $var");


return $result->name;

我希望这有助于提出这个想法

于 2012-07-08T10:36:51.280 回答