MySQL 数据库连接查询

标签 mysql sql database

请有人建议如何根据表 A 和表 B 信息为下面的结果编写 mySQL 查询。

Table A
=======

ID | Product
------------
1  | A
2  | B
3  | C

Table B
=======

ID | Link | Extra Field | Extra Value
-------------------------------------
1  |  1   | Tax         | Yes
2  |  1   | Photo       | No
3  |  2   | Tax         | Yes
4  |  2   | Photo       | Yes
5  |  3   | Tax         | No
6  |  3   | Photo       | Yes

Result
======

Product | Tax | Photo
---------------------
A       | Yes | No
B       | Yes | Yes
C       | No  | Yes

最佳答案

一种方法是使用条件聚合的joingroup by查询。

select a.product,
       max(case when field1 = 'tax' then field2 end) as tax,
       max(case when field1 = 'photo' then field2 end) as photo
from a join
     b
     on a.id = b.link
group by a.product;

关于MySQL 数据库连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29417453/

相关文章:

php - 更新数据库时缺少参数错误

java - 错误 : No suitable driver found for database on AWS RDS

mysql - 跨多个表保留插入顺序

sql - 在左连接上返回不同的行数

php - 编写控制面板脚本修改php文件

mysql - 这个 MySQL 查询有问题吗?

mysql - 年份条件工作正常,但我运行年份和日期,它显示为空

mysql - MySQL 中何时使用单引号、双引号和反引号

database - 使用 nhibernate 跨数据库加入

database - 什么是数据库事务?