Php 将左联接合并到我的查询中,但失败

Php 将左联接合并到我的查询中,但失败,php,mysql,Php,Mysql,尝试将另一个查询与现有查询合并,但失败 以下是不带左联接的工作查询 $order_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_items WHERE order_id = '" . (int)$order_id . "'"); 下面是一个尝试组合不起作用的 $order_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "ord

尝试将另一个查询与现有查询合并,但失败

以下是不带左联接的工作查询

$order_query = $this->db->query("SELECT * FROM " . DB_PREFIX .
"order_items WHERE order_id = '" . (int)$order_id . "'");
下面是一个尝试组合不起作用的

$order_query = $this->db->query("SELECT * FROM " . DB_PREFIX .
"order_items WHERE order_id = '" . (int)$order_id . "'" LEFT JOIN .
DB_PREFIX ."item_description WHERE item_id= '" . (int)$item_id . "'"
);

知道我哪里做错了吗

您需要正确构造join语句。WHERE子句稍后才出现

$prefix = DB_PREFIX;
$sql = "
    SELECT oi.* FROM {$prefix}order_items AS oi
    LEFT JOIN {$prefix}item_description AS itd
    ON oi.item_id = itd.item_id
    WHERE oi.order_id = ?
    AND itd.item_id = ?
";


$this->db->query($sql, [$order_id, $item_id]);
你可以试试这个代码

$order_query = $this->db->query("SELECT oi.* FROM " . DB_PREFIX ."order_items  oi
               LEFT JOIN ".DB_PREFIX ."item_description des on oi.order_id = des.order_id
               WHERE oi.order_id = '" . (int)$order_id . "' and  
               des.item_id= '" . (int)$item_id . "'");

嗨,我想知道下星期几的情况?我该怎么办?或者我把它留在那里?@Micho不直接在实际查询中注入值,上面的答案称为查询绑定,问号称为占位符,试试上面的答案这是一个内部连接注意,左连接x。。。其中x=与内部联接x相同。。。