我有一个运行良好的查询,但我正在尝试查看是否可以稍微清理一下我的结果。
该查询从我的表State
中提取Fiber ID
和fiber_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?
谢谢!
答案 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。