0

私はこのSQLコードを持っています:

SELECT t1.offname, t2.offname, t3.offname, t4.offname, t5.offname, t6.offname, t7.offname
FROM AS_ADDROBJ_29 t1
LEFT JOIN AS_ADDROBJ_29 t2 ON t1.parentguid = t2.aoguid AND t1.parentguid NOT NULL
LEFT JOIN AS_ADDROBJ_29 t3 ON t2.parentguid = t3.aoguid AND t2.parentguid NOT NULL
LEFT JOIN AS_ADDROBJ_29 t4 ON t3.parentguid = t4.aoguid AND t3.parentguid NOT NULL
LEFT JOIN AS_ADDROBJ_29 t5 ON t4.parentguid = t5.aoguid AND t4.parentguid NOT NULL
LEFT JOIN AS_ADDROBJ_29 t6 ON t5.parentguid = t6.aoguid AND t5.parentguid NOT NULL
LEFT JOIN AS_ADDROBJ_29 t7 ON t6.parentguid = t7.aoguid AND t6.parentguid NOT NULL
WHERE t1.offname LIKE "smth%"

これを で実行するとSQLiteManager、一部の列が null に等しい 7 つの列が返されます。しかし、AIR は最後のt7テーブル結果のみを返し、他の結果は省略されます。状況SQLColumnNameStyle-sを変えることはできません。

何か案は?

4

1 に答える 1

0

同じテーブルを結合すると問題が発生します。その結果、同じ名前の列が多数取得されます。AIR sqlite エンジンはそれを適切に処理できませんが、単純なハックがあります。すべての列に異なる文字列名を付ける必要があります。このような:

SELECT t1.offname AS 'OFFNAME1', t2.offname AS 'OFFNAME2', t3.offname AS 'OFFNAME3', 
t4.offname AS 'OFFNAME4', t5.offname AS 'OFFNAME5', t6.offname AS 'OFFNAME6',
t7.offname AS 'OFFNAME7'
FROM AS_ADDROBJ_29 t1
LEFT JOIN AS_ADDROBJ_29 t2 ON t1.parentguid = t2.aoguid AND t1.parentguid NOT NULL
LEFT JOIN AS_ADDROBJ_29 t3 ON t2.parentguid = t3.aoguid AND t2.parentguid NOT NULL
LEFT JOIN AS_ADDROBJ_29 t4 ON t3.parentguid = t4.aoguid AND t3.parentguid NOT NULL
LEFT JOIN AS_ADDROBJ_29 t5 ON t4.parentguid = t5.aoguid AND t4.parentguid NOT NULL
LEFT JOIN AS_ADDROBJ_29 t6 ON t5.parentguid = t6.aoguid AND t5.parentguid NOT NULL
LEFT JOIN AS_ADDROBJ_29 t7 ON t6.parentguid = t7.aoguid AND t6.parentguid NOT NULL
WHERE t1.offname LIKE "smth%"

これで SQLResult.data に、7 つの "OFFNAME#" キーとすべての値を持つオブジェクトができます。一部の値は null に等しくなります。

于 2012-07-31T06:36:11.800 に答える