MySQL使用UNION从两个表中选择相同的字段名称

时间:2013-06-08 00:51:14

标签: mysql

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

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

1 个答案:

答案 0 :(得分: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
....