Как вытащить строку из соединения, когда внешний ключ равен нулю - PullRequest
1 голос
/ 30 декабря 2011

У меня есть таблица БД с информацией о продукте и таблица БД с налоговыми ставками.

Моя проблема в том, что я соединяю эти две таблицы вместе, и это прекрасно работает ... пока я не отключу "налогооблагаемый" в строке для БД продукта. Теперь мой запрос пытается присоединиться, но не находит внешний ключ, и я не получаю никакого результата .. Я хочу получить результат в любом случае. Я использую синтаксис воспламенителя кода, но должно быть довольно очевидно, что здесь происходит:

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

иногда q.inventyTaxRateID становится 0 или отключен. Запрос не может объединить две таблицы и не дает мне никакого результата. Я хочу, чтобы он по-прежнему давал мне результат из инвентаризации.

Я также пытался присоединиться слева:

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

Ответы [ 2 ]

3 голосов
/ 30 декабря 2011

Вы можете указать ПРАВИЛЬНОЕ объединение следующим образом:

$this->db->join('inventory_items q', 
                'q.inventoryTaxRateID = a.inventoryTaxRateID', 
                'right'); 
1 голос
/ 30 декабря 2011

Вы можете использовать RIGHT JOIN , но я бы хотел переписать запрос следующим образом:

SELECT .. FROM inventory_items ...
LEFT JOIN inventoryTaxRates ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...