0

我有两个表,我正在尝试使用相同的查询从每个表中提取值。这是一个自动完成框,用户可以在其中输入标题或流派。

我想知道一行是来自 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 回答