我有一个运行良好的查询,但我想看看我是否可以稍微清理我的结果。
该查询从我的名为 State
的表中提取 Fiber ID
和 fiber_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/