如何左边连接一个带有可选子句的表

时间:2017-01-02 12:55:14

标签: mysql

我有这个查询,我想找到每个订购产品的位置

SELECT op.orders_id, op.products_id, op.products_quantity, op.products_name, psl.shelf_code
          FROM orders_products AS op
     LEFT JOIN orders_products_attributes AS opa
            ON op.orders_products_id = opa.orders_products_id
     LEFT JOIN products_stock_location AS psl
            ON op.products_id = psl.products_id
           AND opa.products_options_values_id = psl.option_id
         WHERE op.orders_id IN ('" . implode("', '", $oIDs) . "')  

有时候产品没有属性,所以他们在orders_products_attributes中没有条目,在这种情况下,我的第一个Left join返回什么不是问题,但我的AND子句进行第二次连接没有回报。

如果不相关,有没有办法让和子句可选?

1 个答案:

答案 0 :(得分:0)

and (opa.products_options_values_id is null
     or opa.products_options_values_id = psl.option_id)