学习路之数据库:sql查询时添加一列固定值

需求: 现有一个表tab,表中有两个字段,a和b,现在想查询时候添加一列c,并且值全部为1

SELECT T.*,1 as c FROM tab T;

 上面是转自网上的

需求:根据用户id_查询3张表,数据返回给前端显示

下面是最后的sql语句  1011:为模拟用户ID

select i.id,i.created_at,i.address,i.cover_img,i.title,1 as from_table from 表A as i where user_id = 1011 union all select b.id,b.created_at,b.address,b.cover_img,b.title , 2 as from_table from 表B as b where user_id = 1011 union all select j.id,j.created_at,j.address,j.cover_img,j.title ,3 as from_table from 表C as j where user_id = 1011 order by created_at desc

 

用到上面的【查询时候添加一列c,并且值全部为1 】

下面是mysql UNION说明,,有一点要补充的:如果表结构不同,把要查询的列标出来且每个表都要有(不然报错):

这里的:     i.id,i.created_at,i.address,i.cover_img,i.title

 

MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。

语法

MySQL UNION 操作符语法格式:

SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];

参数

  • expression1, expression2, ... expression_n: 要检索的列。

  • tables: 要检索的数据表。

  • WHERE conditions: 可选, 检索条件。

  • DISTINCT: 可选,删除结果集中重复的数据。默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。

  • ALL: 可选,返回所有结果集,包含重复数据。

你可能感兴趣的:(mysql)