1

id フィールドと PREFIX_name フィールドをすべて含む 3 つのテーブルを持つ WebSQL データベースがあります。単一の ID のすべての名前フィールドを取得する必要があります。

現在、私は次の節を試しています:

SELECT A_name FROM TableA WHERE companyId = 1 UNION ALL
SELECT B_name FROM TableB WHERE companyId = 1 UNION ALL
SELECT C_name FROM TableC WHERE companyId = 1

これは期待どおりの結果オブジェクトを返しますが、フィールド名が間違っています:

[{
  "A_name" : "result from TableA",
 },
  "A_name" : "result from TableB",
 },
  "A_name" : "result from TableC"
}];

ご覧のとおり、どのテーブル フィールドからのものか特定できません。

4

1 に答える 1

3

一緒にUNION結果を出すと、最初のクエリで指定された名前が列に付けられます (この場合はA_name) 。

を使用する代わりにUNION ALL、テーブルを結合してみてください。

SELECT A.A_name, B.B_name, C.C_name
FROM TableA A
    INNER JOIN TableB B ON A.companyId = B.companyId
    INNER JOIN TableC C ON A.companyId = C.companyId
WHERE A.companyId = 1

これにより、結果が 1 行に表示されます。結果を別々の行として表示したい場合は、 *_name フィールドとともにテーブル名を選択できます。

SELECT 'TableA' AS TableName, A_name FROM TableA WHERE companyId = 1 UNION ALL
SELECT 'TableB', B_name FROM TableB WHERE companyId = 1 UNION ALL
SELECT 'TableC', C_name FROM TableC WHERE companyId = 1
于 2012-08-15T12:30:53.167 に答える