簡體   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