似乎我的查询不完全按照我想要的。只要结果是2行或更多行,查询就会得到结果。当我得到单行时,查询没有得到任何结果。MySQL独特或组合与结果是单行时没有给出结果
在SELECT
我可以做DISTINCT (ct.name)
但这给出了同样的问题,作为群。
SELECT
ct.name,
(3959 * acos(cos(radians(52.779716)) * cos(radians(com.gps_lat)) * cos(radians(com.gps_lon) -
radians(21.84803)) + sin(radians(52.779716)) * sin(radians(com.gps_lat)))) as distance
FROM cuisine_types as ct
左侧的接合部公司来检查,如果一家公司被连接到cuisine_type
LEFT JOIN company AS com ON (com.cuisine_type_id = ct.id)
在这里,我的分组结果让没有烹饪类型出现了两次。 这似乎只当结果是2点或更多的行工作...
GROUP BY ct.name
在这里,我检查,如果该公司的距离内的用户preferenced搜索半径
HAVING distance < 20;
为例如,如果我将“快餐”,“纯素食”和“健康”作为美食类型,则无论搜索距离中有多少公司与该美食类型相关,我只需要其中一种烹饪类型。所以我使用GROUP BY过滤了双重美食类型,希望这有助于理解我在此查询中的方法。
注意:公司只有一种美食类型。没有评论
完整的SQL查询到这里
SELECT ct.name,(3959个* ACOS(COS(弧度(52.779716))* COS( 弧度(com.gps_lat))* COS(弧度( (弧度(52.779716))* sin(弧度( com.gps_lat))))作为距离FROM cuisine_types作为ct LEFT JOIN 公司AS com ON(com.cuisine_type_id = -) ct.id)GROUP BY ct.name HAVING距离< 20;
它没有在所有的或错误的结果给出的结果? – 2013-02-20 22:27:22
当结果为1行时,没有结果可见(我知道应该有一个结果) – 2013-02-20 22:29:21
如果您摆脱Group By和Having,您的单行是否会出现? – Tony 2013-02-20 22:33:31