【发布时间】:2026-01-18 08:20:04
【问题描述】:
我的 MySQL 内部连接出现问题。我的INNER JOIN 没有给我想要的结果。我的 Table1 包含 TrackNo,然后 Table2 包含每个 trackNo 的 Table1 的详细信息。
>> 表结构:
>> SQL 代码:
SELECT tr.trackNo AS 'TrackNo',
trD.Status,
MAX(trD.DatePosted) AS `Date/Time`
FROM Tracking AS tr
INNER JOIN TrackingDetails AS trD
ON tr.trackNo = trD.trackNo
WHERE tr.ClientID='client01'
AND trD.trackNo IN ('xx000001','xx000002','xx000003')
AND trD.DatePosted IS NOT NULL
AND trD.Status IN (
'Received',
'Logged',
'Prepped',
'Analyzed',
'Reviewed',
'Final Report',
'Invoiced')
GROUP BY tr.trackNo
ORDER BY tr.trackNo ASC
这是上面的结果查询:
如您所见,上面的查询结果图像是正确的,除了Status 列。我的SQL 查询哪里出错了?我错过了什么?
>> 所需输出:
+----------+----------+---------------------+
| TrackNo | Status | Date/Time |
+==========+==========+=====================+
| xx000001 | Logged | 2015-03-09 17:53:14 |
+----------+----------+---------------------+
| xx000002 | Prepped | 2014-08-15 17:19:00 |
+----------+----------+---------------------+
| xx000003 | Analyzed | 2014-10-10 11:12:00 |
+----------+----------+---------------------+
提前致谢!
【问题讨论】:
-
您确定是产生这些结果的代码吗?你有
SELECT tr.trackNo AS 'TrackNo',但它似乎以trackingNo出现,我在TrackingDetails表中看不到任何DatePosted字段,我假设它是上面的表2 -
@colmde:哎呀。我的错。我修改了确切的表格。是 TABLE2 是 TrackingDetails 和
Date/Time=DatePosted