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

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

代码:

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 数据的那些。所以我得到了一些关于 hvi 数据的 Nulls 的结果。

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

谢谢!

最佳答案

使用 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')

关于sql - 如何在左连接结果中不显示空值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3934194/

10-10 15:04