2017-07-03 10 views
0

以下のようなMySQLテーブルからいくつかの値を選択したいと思います。 koordsの値が一致した場合にのみ、戦術ID変数とID変数を連結したいと思います。クエリの出力には、テーブル内のすべての行が含まれている必要があります。重複は1行に置き換えられます。 2つの行が緯度と経度の値に一致する場合、2つの行を1つにまとめる必要があります。複数の値を列に連結します。 これは可能ですか?group_concat変数でMySQLを使用して新しい行を作成する

元の表の列は次のとおりID、NETID、戦術、名称、緯度、経度。

SELECT ID, tactical 
      ,CONCAT(latitude, ", ", longitude) as koords 
      ,GROUP_CONCAT(tactical SEPARATOR '-') as newtact 
      ,GROUP_CONCAT(ID SEPARATOR '-') as newID 
FROM `NetLog` 
WHERE netID = 276 

目標は、重複したレコードの情報を含むGoogleマップにマーカーを作成することです。マッピング部分が完了したら、私はこの時点で重複を結合する必要があります。

+0

質問を編集し、サンプルデータと希望する結果を提供してください。 –

答えて

1

は、私はあなたがgroup byをしたいと思う:MySQLののデザイナーはあなたがエラーなしで実行するようなクエリを聞かせなぜ

SELECT CONCAT(latitude, ', ', longitude) as koords, 
     GROUP_CONCAT(tactical SEPARATOR '-') as newtact, 
     GROUP_CONCAT(ID SEPARATOR '-') as newID 
FROM `NetLog` 
WHERE netID = 276 
GROUP BY latitude, longitude; 

が私を超えています。 SELECTに集約関数と一緒に集約されていない列があるため、標準SQLではありません。

+0

私はあなたの懸念にはコメントできませんが、私はあなたが私の質問に答えたと思います。私はあらゆる種類のものを試しましたが、結局のところ非常にシンプルな解決策でしたが、私はそれを見なかったのは残念です。ありがとうございました。 @KeithDKaiser。 –

+0

。 。 'latitude'が' group by'ではなく、集計されていないというエラーが出たら、もっと早く見つけたかもしれません。 –

関連する問題