> 今天半夜想起来有个功能没做,然后大清早就爬起来写。可惜业务涉及新表和第三方二开的数据表,无奈负责持久层的同学还没起来,自己研究咯
## 先展示两个数据表结构

## 数据内容:

## 描述下持久层的业务需求:
`A表是用于记录选择的B表的某几行数据的内容,也就是类似于B表再加一个is_select字段用于记录选择。目前由于不方便修改B表的结构,用两张表来实现`
## Thinking
前段时间见过负责持久层的同学用`IF`关键字来代替一个字段判断内容,这次应该也是一样的情况
## Doing
搞了一会,完成了:

也就是在A表中选择了的B的数据后面都加上了`is_select`然后判断是否取出了内容
## SQL
```SQL
SELECT
B.id,
B.content,
IF((SELECT `select` FROM A WHERE `select`=B.id),1,0) AS is_select
FROM A,B
GROUP BY B.id
```
SQL语句的`IF(expr1,expr2,expr3)`关键字中的`expr1`作为表达式当返回值为`TRUE `或者`expr1 <> 0 and expr1 <> NULL`时返回`expr2`否则返回`expr3`
那么我在上条sql中就没有使用`=`运算符,而是直接取了A表的`select`字段,利用默认的是否为空来判断返回`1/0`,然后将列取名为`is_select`
> ps:当sql关键字作为字段名取值时,需要在两边加上反引号 ` 也就是大键盘上1按键左边,TAB键上方的按

SQL 如何用A表作为条件查询出B表的数据后添加额外字段