繁体   English   中英

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

[英]MySQL Select same field name from two tables using UNION

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

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

为了创建一个联合,列的名称必须匹配,如果你想知道每个字段来自哪个表,那么你可以这样做:

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
....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM