0
我需要幾個小時試圖與學說查詢讀取位置基於距離,但反過來位置(位置實體)的值數據(位置實體)僅針對相應的用戶重複一次(司機實體)。Symfony的學說沒有重複值
我位置實體:
- ID
- 司機(多對一到司機實體)
- 緯度
- 經度
- 準確性
- 海拔
- ....
我司機實體:
- ID
- 名
- 電子郵件
- ....
我當前的代碼:
$Locations = $entityManager
->getRepository("MYBUNDLE:Location")
->createQueryBuilder('s')
->leftJoin("s.chauffeur", "chauffeur")
->select('s')
->addSelect(
'(3959 * acos(cos(radians(' . $location_lat . '))' .
'* cos(radians(s.latitude))' .
'* cos(radians(s.longitude)' .
'- radians(' . $location_lng . '))' .
'+ sin(radians(' . $location_lat . '))' .
'* sin(radians(s.latitude)))) as distance'
)
->having('distance < :distance')
->setParameter('distance', 10)
->orderBy('distance', 'ASC')
// up to this line it works fine
//->select('s.chauffeur,count(s.1) as cnt') //
//->groupBy('s.chauffeur') // Filter to see only one Location per Chauffeur
//->having('s.count(1) > 1'); //
我的選擇結果:
第一個結果:
- ID:1
- 司機:10(ID)
- 緯度:-34.894336
- 經度:-56.152603
- 精度:20.0
- 高度:20
第二結果:
- ID:2
- 司機:15(ID)
- 緯度:-34.917782
- 經度:-56.164569
- 精度:20.0
- 高度:20
第三結果:
- ID:3
- 司機:10(ID)
- 緯度:-34。902652
- 經度:-56.147251
- 精度:20.0
- 海拔:20
...
什麼應該發生的是,ID 3的位置被省略,因爲還有另一個位置(ID 1)爲同一用戶(司機實體)
我感謝您的幫助, 個問候,
所有你需要做的是通過你的查詢並增加集團 – Adish
@Adish是的,我已經試過,但我不工作: ( – Gabriel
爲什麼ID3被省略?是因爲ID1