我有两个表,我正在尝试使用相同的查询从每个表中提取值。这是一个自动完成框,用户可以输入标题或流派。
我想知道一行是来自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
。
答案 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
....