mysql左连接但返回空行

时间:2010-10-06 18:53:43

标签: mysql return join

我有一个小问题,我有这个设置......

表:商品名称{trade_id:1 trade_name:olivers guest house}

表客户{name:me,trade_id:1:blah:blah}

我做左边的加入以获得客户的商品名称,就像你是一个宾馆,你将有一个商品名称,但作为房东,你将没有商品名,但我仍然想要一个结果回来。

所以一切都很好......不。我在一个表中显示结果,该表通过邮政编码和交易进行搜索。

我做一个选择,其中邮政编码如%postcode%AND交易,如%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%cant一样。

我希望我的描述并不复杂。

我希望只有某种类型的联接可以做到,但我看不到一个:(

谢谢你们

1 个答案:

答案 0 :(得分:0)

在您的查询中(我认为您尚未发布),您应该替换:

SELECT trade_name, ....

使用:

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

或者您也可以使用MySQL特定的功能IFNULL

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