似乎我的查詢不完全按照我想要的。只要結果是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