MySQL оставил присоединиться, но вернуть пустую строку - PullRequest
0 голосов
/ 06 октября 2010

У меня небольшая проблема, когда у меня есть эта настройка ...

Таблица: торговые наименования {trade_id: 1 trade_name: olivers guest house}

Таблица Customer {name: me, trade_id: 1: blah: blah}

я делаю левое соединение, чтобы получить торговое наименование для клиентов, как если бы вы были гостевым домом, у вас будет торговое название, но как владелец у вас не будет торгового имени,но я все еще хочу, чтобы результат вернулся.

так что все хорошо .... Нет.Я отображаю результаты в таблице, в которой есть поиск по почтовому индексу И торговля.

Я делаю выбор, где почтовый индекс, например,% postcode%, и торговля, например,% trade%, которая возвращает критерии, которые соответствуют.

Поскольку левое соединение не вернет торговлю для арендодателя,без сделки исключается из результатов.

Мне было интересно, есть ли какой-нибудь способ сказать, если строка не существует, вернуть пустое поле.

, поэтому было бы так:

array([0] => array([0] =>[name] = "something" ["trade_name"] = "olivers guest house" [type] = "guest house").
             array[0] => [name] = "something" ["trade_name"] = " " [type] = "landlord");

какв настоящее время я получаю

array([0] => array([0] =>[name] = "something" ["trade_name"] = "olivers guest house" [type] = "guest house").
             array[0] => [name] = "something" ["trade_name"] = "NULL" [type] = "landlord");

, с которыми не может работать, где trade_name, например% trade%.

Надеюсь, я не слишком усложнил описание.какой-то тип соединения, который сделал бы это, но я не вижу одного: (

Спасибо, ребята

1 Ответ

0 голосов
/ 06 октября 2010

В вашем запросе (который, я думаю, вы не опубликовали) вы должны заменить:

SELECT trade_name, ....

с:

SELECT COALESCE(trade_name, ' '), ....

или вы можете использовать функцию MySQL IFNULL :

SELECT IFNULL(trade_name, ' '), ....
...