php - 使用左连接连接多个表

标签 php mysql join

我有以下查询:

$products_query = 
  tep_db_query("select op.orders_products_id, op.orders_id, op.products_id, ".
                      "op.products_model, op.products_name, op.products_quantity, ".
                      "p.products_id from " . TABLE_ORDERS_PRODUCTS . " op " .
                  " left join " . TABLE_PRODUCTS . " p " .
                  " on (op.products_id = p.products_id) where orders_id = '" . 
                  (int)$cuttinglist['orders_id'] . "'");

这会将两个具有相同 id 的表连接在一起。我如何加入第三个表:

"TABLE_ORDERS_PRODUCTS_ATTRIBUTES" 

具有相同的 ID:

"TABLE_ORDERS_PRODUCTS"

使用的ID是:

"orders_products_id"

最佳答案

为了更容易阅读您的代码(因此您不需要到处都有这么多的连接和引号,您可以执行如下查询:

$sql='
select 
    op.orders_products_id, 
    op.orders_id, op.products_id,
    op.products_model, 
    op.products_name, 
    op.products_quantity,
    p.products_id 
from 
    '.TABLE_ORDERS_PRODUCTS.' op 
        left join '.TABLE_PRODUCTS.' p 
            on op.products_id = p.products_id
        left join '.TABLE_ORDERS_PRODUCTS_ATTRIBUTES.' Attrib
            on op.orders_products_id=Attrib.orders_products_id
where 
    orders_id = "' .(int)$cuttinglist['orders_id'] . '"
';
$products_query = tep_db_query($sql);

关于php - 使用左连接连接多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12280418/

相关文章:

MySQL 在选择中选择

javascript - 在 Laravel 中编辑期间保持选择选项值处于选中状态

php - 访问 https 资源时,PHP 的 fopen() 是否可以防止典型的攻击?

MYSQL 查询左连接失败

sql - PHP/MySQL问题,更多的是后者

mysql - 查询 SQL 的 4 个字段(共 5 个)不同,返回表中的所有字段

Mysql,双重连接两次使用同一张表,但间接

php - javascript 相互减去日期数字

php - Laravel RESTful Controller 添加参数创建

mysql - 这三个 MySQL 查询有什么区别?