如何在左连接结果中不显示空值?

时间:2010-10-14 14:25:39

标签: sql left-join

我有一个运行良好的查询,但我正在尝试查看是否可以稍微清理一下我的结果。

该查询从我的表State中提取Fiber IDfiber_intake字段。然后它从我的hvi表中提取所有字段,其中Fiber_intake表中的Fiber ID = GA。

代码:

SELECT `fiber_intake`.`State`, `fiber_intake`.`Fiber ID`, `hvi`.*
FROM `fiber_intake`
 LEFT JOIN `hvi` ON `fiber_intake`.`Fiber ID` = `hvi`.`Fiber ID` 
WHERE (`fiber_intake`.`State` = 'GA')

它工作得很好,除了它拉出所有GA光纤ID,即使是另一个表中没有hvi数据的那个。所以我得到了一些结果,其中有一堆Null用于hvi数据。

有没有办法排除没有与之关联的hvi表数据的光纤ID?

谢谢!

2 个答案:

答案 0 :(得分:6)

使用INNER JOIN代替LEFT [OUTER] JOIN

这行的添加是OUTER JOIN的全部目的。

SELECT `fiber_intake`.`State`, `fiber_intake`.`Fiber ID`, `hvi`.*
FROM `fiber_intake`
 INNER JOIN `hvi` ON `fiber_intake`.`Fiber ID` = `hvi`.`Fiber ID` 
WHERE (`fiber_intake`.`State` = 'GA')

答案 1 :(得分:3)

使用INNER JOIN。