外键为null时如何从连接中拉行

时间:2011-12-29 21:07:37

标签: php mysql codeigniter join

我有一个包含产品信息的数据库表和一个包含税率的数据库表。

我的问题是我将这两张桌子加在一起,效果很好..直到我禁用"纳税"在产品DB的一行。现在我的查询正在尝试加入,但是没有找到外键,我根本没有得到任何结果。我想以任何方式获取结果。我正在使用代码点火器语法,但它应该是非常明显的在这里发生:

    $this->db->from('inventoryTaxRates a');
    $this->db->join('inventory_items q', 'q.inventoryTaxRateID = a.inventoryTaxRateID');

有时q.inventyTaxRateID变为0或禁用..查询无法连接这两个表并且没有给出任何结果。我希望它仍然给我inventory_items的结果。

我也尝试过离开加入:

 $this->db->join('inventory_items q', 'q.inventoryTaxRateID = a.inventoryTaxRateID', 'left');

2 个答案:

答案 0 :(得分:3)

您可以像这样指定一个右连接:

$this->db->join('inventory_items q', 
                'q.inventoryTaxRateID = a.inventoryTaxRateID', 
                'right'); 

答案 1 :(得分:1)

can use RIGHT JOIN,但我想像这样重写查询:

SELECT .. FROM inventory_items ...
LEFT JOIN inventoryTaxRates ...