MySQL查询: merge rows in three tables and output as one

标签 mysql sql

我想从三个表中提取信息,这三个表通过某些 id 相互链接。你能建议我该怎么做吗?我尝试过,但三个表有点太复杂了。这是我正在尝试做的事情:

Here are the three tables and resulting table

所以基本上从上面三个表中我想将 USER 与相应的 PID 进行匹配,仅显示特定 SPEC 类型的计数,例如示例中所示的 ROUND。 (也可能发生相同的 PID 被分配给两个不同的用户,例如用户 AAA 和 BBB 的 PID=1)。

你能告诉我该怎么做吗?

最佳答案

SELECT 
  t1.USER, 
  t1.PID, 
  COUNT(T3.SPEC) AS CountRound
FROM Table1 t1
  LEFT JOIN Table2 t2 ON t1.PID = t2.PID 
  LEFT JOIN Table3 t3 ON t2.LID = t3.LID AND t3.SPEC = 'ROUND'
GROUP BY
  t1.USER,
  t1.PID

关于MySQL查询: merge rows in three tables and output as one,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6417511/

相关文章:

SQL 获取列值等于最大值的行

mysql - 提高大型数据库上 mySQL 查询的速度

sql - SQL 查询的日期

sql - 如何优化在 UPDATE 中追加到 CLOB 的性能?

php - 在 php 中放置一个表格,第一行

sql - Rails 在多个表上按列排序

sql - 更改 SQL 数据库的主键

java - 如何管理 Apache Web 服务器和 Google App Engine 之间的 HTTP 通信?

mysql - 如何在单个 mysql 查询中进行 Base64 解码和降低?

mysql - 乐观锁和交错