Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
子查询中的两列(mysql)_Mysql_Select_Subquery - Fatal编程技术网

子查询中的两列(mysql)

子查询中的两列(mysql),mysql,select,subquery,Mysql,Select,Subquery,有如下表格的: TB1 ID1 NAME --- ---- 1 Mark 2 Elis TB2 ID2 ID1 DATE VALUE --- --- ---------- ------ 10 1 2018-01-01 100,00 20 1 2019-01-01 101,00 30 2 2018-02-01 200,00 40 2 2019-02-01 201,00 我想要两个表的结果,分别是ID和NAME唯一、DATE降序及其值。这是我尝试过

有如下表格的:

TB1

ID1 NAME
--- ----
1   Mark
2   Elis

TB2

ID2 ID1 DATE       VALUE
--- --- ---------- ------
10  1   2018-01-01 100,00
20  1   2019-01-01 101,00
30  2   2018-02-01 200,00
40  2   2019-02-01 201,00
我想要两个表的结果,分别是
ID
NAME
唯一、
DATE
降序及其值。这是我尝试过的,但不起作用:

SELECT TB1.NAME,
       (
        SELECT 
          TB2.DATE,
          TB2.VALUE 
        FROM 
          TB2 
        WHERE 
          TB1.ID1=TB2.ID1 
        ORDER BY 
          TB2.DATE DESC 
        LIMIT 1
       ) 
       AS M_DATE,M_VALUE
       FROM 
          TB1
      WHERE 
          TB1.ID1>0
我的预期结果是:

EXPECTED RESULT
===============
NAME M_DATE     M_VALUE
---- ---------- -------
Mark 2019-01-01 101,00
Elis 2019-02-01 201,00

您可以使用以下选项:

SELECT TB1.NAME, TB2.`DATE`, TB2.VALUE
FROM TB1 INNER JOIN (
  SELECT ID1, MAX(`DATE`) AS M_DATE 
  FROM TB2 GROUP BY ID1
) TB2_MAX ON TB1.ID1 = TB2_MAX.ID1
  INNER JOIN TB2 ON TB2_MAX.ID1 = TB2.ID1 AND TB2_MAX.M_DATE = TB2.`DATE`
WHERE TB1.ID1 > 0

所以您希望在ID1列上连接TB1和TB2,但您希望TB2中的哪一行?基于最高值或最新日期?@verhie最高日期,但必须公开相应的值great!作品谢谢你,塞巴斯蒂安。