0

2 つのテーブルがあり、同じクエリを使用して各テーブルから値を取得しようとしています。これは、ユーザーがタイトルまたはジャンルを入力できるオートコンプリート ボックス用です。

行が items_table または item_genres_table からのものかどうかを知りたいです。以下は動作しません。両方のテーブルからすべての行を返していますが、すべての行のキーは item_title であり、期待どおりの item_genre ではありません。

SELECT name as item_title FROM items_table 
WHERE name LIKE ? 
UNION
SELECT name as item_genre FROM item_genres_table
WHERE name LIKE ?

nameデータベースのフィールドを制御できないため、両方のテーブルで立ち往生しています。

4

1 に答える 1

2

ユニオンを作成するには、列の名前が一致する必要があります。各フィールドがどのテーブルから来ているか知りたい場合は、次のようにすることができます。

SELECT name as item_name, 'item_table' as table_coming_from FROM items_table 
WHERE name LIKE ? 
UNION
SELECT name as item_name, 'item_genres_table' as table_coming_from FROM item_genres_table
WHERE name LIKE ?

このようにして、次のような出力が得られます。

name   |  table_coming_from
name1       item_table
name2       item_genres_table
....
于 2013-06-08T00:59:25.810 に答える