繁体   English   中英

MySQL:对于表中的每一行,然后从其他表中获取数据

[英]MySQL: for each row on table then get data from other table

我在MySQL中遇到问题。 它涉及两个表,现在第一个表查询TrackingNo,然后其他表根据TrackingNo查询详细信息。 (请参见下面的示例图片)

>>表1

在此处输入图片说明

>>表2

在此处输入图片说明

如上图所示, 表1返回77 records然后这些77条记录具有 2的详细信息。例如TrackNo。 xxx000001必须获得最新的日期/时间 ,即2015-03-09 17:53:14并且在其他TrackNo上也是如此。

我的问题是应该使用什么查询? 我认为,此问题在使用WITH CTE SQL Server上效果很好,但是我进行了一些研究,发现MySQL不支持WITH Clause

>>所需输出:

+-----------+----------+---------------------+
|  TrackNo  |  Status  |      Date/Time      |
+===========+==========+=====================+
| xxx000001 | Logged   | 2015-03-09 17:53:14 |
+-----------+----------+---------------------+
| xxx000002 | Prepped  | 2014-08-15 17:19:00 |
+-----------+----------+---------------------+
| xxx000003 | Analyzed | 2014-10-10 11:12:00 |
+-----------+----------+---------------------+

任何建议和替代品都将不胜感激!

提前致谢!

尝试这个:

SELECT 
   t2.TrackNo, 
   t2.Status, 
   MAX(t2.DateTime) 
FROM Table1 t1, Table2 t2 
WHERE t1.TrackNo = t2.TrackNo 
GROUP BY t2.TrackNo

在MYSQL中,我们有强大的操作,称为JOINS。 您可以使用JOIN根据两个表上相同的列从两个表中获取输出。

例如:

   SELECT 
   table2.TrackNo, table2.Status, MAX(table2.DateTime) 
FROM Table1 table1, Table2 table2
WHERE table1.TrackNo = table2.TrackNo 
GROUP BY table2.TrackNo;

选择* FROM TrackingNo作为t1,其中t1.date =(从TrackingNo选择max(t2.date)作为t2,其中t1.trackNo = t2.trackNo)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM