2016-10-14 5 views
1

から2つの値を連結し、私はこのように2つのテーブルを持っています。sqliteの異なる行

は、今私は属性「緯度」と「LNG」を持つすべてのレコードを選択して、結果にスペースを持つ緯度」と 『LNG』を参加したい

これは私の現在のクエリで

SELECT p.id, m1.value || " " || m2.value FROM places p 
    JOIN meta m1 ON m1.place = p.id 
    JOIN meta m2 ON m2.place = p.id 
     WHERE p.type IN ("1") 
     AND m1.key = "lat" 
     AND m2.key = "lng"; 

働く表示されます。しかし、これは本当に正しいのですか?私はそれが単一の結合を使用して行うことができますか?

+3

あなたのクエリは正常です。私は文字列定数には一重引用符を使用しますが、SQLiteは両方を受け入れます。 –

答えて

0

単一引用符、あなたのJOINタイプを指定すると、あなたの条件だけでそうではなく=を使用p.typeから単一の結果を探していますINより。

SELECT p.id, m1.value || ' ' || m2.value 
FROM places p 
INNER JOIN meta m1 ON m1.place = p.id 
INNER JOIN meta m2 ON m2.place = p.id 
WHERE p.type = '1' 
AND m1.key = 'lat' 
AND m2.key = 'lng'; 
関連する問題