4

こんにちは、住所でグループ化された家のテーブルからすべての家を選択するクエリがあります。その通りにいくつあるかを数えますが、別のキャンバステーブルで参照されているその通りの数も数えます。

MYSQL で動作するクエリがありますが、iOS アプリで SQlite で試してみると動作しません。私が気付いていない2つの構文の違いはありますか?

 SELECT haddress AS hd, COUNT( * ) ,
    (
     SELECT COUNT( * ) 
     FROM canvass, house
     WHERE canvass.hid = house.hid
     AND house.haddress = hd
    )
 FROM house
 GROUP BY haddress
4

1 に答える 1

5

SQLite の内部クエリで列エイリアスを参照できないようです。そのため、内部クエリを少し変更してエイリアスを使用しhouse、外部を参照できるようにする必要がありますhouse.haddress。変更されたクエリは、SQLite と MySQL の両方で機能するはずです。

SELECT haddress AS hd, COUNT( * ),
    (
     SELECT COUNT( * ) 
     FROM canvass, house house2
     WHERE canvass.hid = house2.hid
     AND house2.haddress = house.haddress
    )
FROM house
GROUP BY haddress
于 2013-08-10T12:41:17.817 に答える