我在MySQL遇到问题。它涉及两个表,现在第一个表查询 TrackingNo ,然后其他表根据 TrackingNo 查询详细信息。 (见下面的示例图片)
>>表1
>>表2
正如您可以看到上面的图片,表1 返回77 records
,然后这77个记录包含 Table2 的详细信息。例如, TrackNo。< / strong> xxx000001
必须获得最新的日期/时间,即2015-03-09 17:53:14
,并且在其他TrackNo上相同。
我的问题是我应该使用什么查询?我认为,这个问题在使用WITH CTE
的SQL Server上运行得很好,但我做了一些研究, MySQL 不支持WITH Clause
。
&GT;&GT;期望的输出:
+-----------+----------+---------------------+
| 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 |
+-----------+----------+---------------------+
非常感谢任何建议和替代方案!
提前致谢!
答案 0 :(得分:0)
试试这个:
SELECT
t2.TrackNo,
t2.Status,
MAX(t2.DateTime)
FROM Table1 t1, Table2 t2
WHERE t1.TrackNo = t2.TrackNo
GROUP BY t2.TrackNo
答案 1 :(得分:0)
在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;
答案 2 :(得分:0)
SELECT * FROM TrackingNo
为t1,其中t1.date =(从TrackingNo中选择max(t2.date)为t2,其中t1.trackNo = t2.trackNo)