一行一对多的mysql

标签 mysql sql select group-by sql-order-by

我有两个表:

id_c    name    surname
 1      frank   pulio
 2      mark    adam
 3      peter   norton


id_v   id_c    data_visited    note
  1      1     2013-10-12      first visited to frank
  2      1     2013-10-16      second visited to frank
  3      2     2013-10-15      first visited to mark
  4      1     2013-10-20      third visited to frank
  5      2     2013-10-18      second visited to mark

我会获取带有上次访问数据的客户名称并注明。

例子:

id_c   name   data_visited   note
  1    frank   2013-10-20    third visited to frank   
  2    mark    2013-10-18    second visited to mark 

最佳答案

 SELECT t1.`id_c`,c.`name`,t1.latest,t1.`note` FROM `tablea`c

 INNER JOIN
 (
 SELECT t2.`id_c`,t2.latest,t3.`note` from `tableb` t3 

 INNER JOIN

 (SELECT `id_c`,MAX(`data_visited`) AS latest from
`tableb` 
GROUP BY(`id_c`))t2
 ON (t3.`id_c`=t2.`id_c`) AND (t3.`data_visited`=t2.latest)

)t1
ON(c.`id_c`=t1.`id_c`) 

关于一行一对多的mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20542601/

相关文章:

sql - 根据连续日期计算排名(如果日期之间有间隔天数,则返回 1)

sql - 选择 varchar 列的最小日期

php - 您建议在没有 MySQL 连接(解释器)的情况下对 PHP 数组执行 MySQL 查询吗?

Python 将 "ó "存储为 "ó "

php - MySQL数据库插入错误

如果没有其他行匹配,则返回默认行的 MYSQL 查询

php - MySQL统计某个范围内的结果和任意范围内的首次出现

sql - 如何在Presto的SQL(Athena)中计算从一年开始的每个月的平均值?

mysql - 外键必须是 mySQL 中的索引?

php - 尝试在表单提交中插入 NULL 日期但得到 00 :00