我有两个表: table_1: item_id
, name
... table_2: image_id
, item_id
,url
以下函数使用传入的“$name”检索项目的“urls”。我首先需要从 table_1 获取“item_id”以在查询中使用。我只需要从 table_2 返回“url”。
它目前工作正常,但我觉得它可以简化为在一个带有 JOIN 的查询中完成,而不是两个单独的查询。我尝试使用不同的 'JOIN' 来使其工作,但我似乎无法做到正确。
这是现在具有两个查询的功能...
function get_items( $name ) {
global $wpdb;
$sql1 = "SELECT `item_id` FROM `table_1` WHERE `name` = '$name'";
$results1 = $wpdb->get_var( $sql1 );
$sql1 = "SELECT `url` FROM `table_2` WHERE `item_id` = '$results1'";
$results2 = $wpdb->get_results( $sql1, ARRAY_A );
return $results2;
}
这是我尝试实现的“JOIN”,但没有成功(我也将其切换并执行了“LEFT/RIGHT JOIN”,结果相同)...
$sql1 = "SELECT `table_2`.`url`
FROM `table_2`
INNER JOIN `table_1`
ON `table_2`.`item_id` = `table_1`.`item_id`
WHERE `table_1`.`item_id` = '$name'";
关于组合这两个查询的任何建议?