EDITED不同的值:MYSQL高级选择与corressponding ID其不在anothe表
我已经从我的表的一个SELECT
DISTINCT
值一个巨大的问题。
表1:T1
pid thing sub-thing tnumber
-------------------------------------------
1 A1212 A01A00001 123456
2 A1212 A01A00002 123457
3 A1212 A01A00002 123458
4 A1214 A01B00001 123459
5 A1214 A01B00002 123460
6 A1214 A01B00001 123461
7 A1217 C01A00001 123462
表2:T2
id pid thing sub-thing tnumber h1
--------------------------------------------------------------
1 3 A1212 A01A00002 123458 False
我需要SELECT
表T1
所有DISTINCT
子事情每一件事情未在表T2
,最重要的 - 只有最高的tnumber(例如max(id))。
结果应离开记录2,4从T1
,因为有相同的子事物具有较高的tnumber和当然离开记录3从T1
,因为它在T2
。 最终的结果应该是这样
id thing sub-thing tnumber
-------------------------------------------
1 A1212 A01A00001 123456
5 A1214 A01B00002 123460
6 A1214 A01B00001 123461
7 A1217 C01A00001 123462
感谢大家在这里,我已经试过的语法是:
SELECT DISTINCT t1.pid, t1.thing, t1.subthing, t1.tnumber
FROM t1 INNER JOIN
(SELECT t1.thing, t1.subthing, max(t1.tnumber) as tnumber FROM t1 LEFT OUTER JOIN t2 o ON t1.pid=o.pid WHERE o.pid IS NULL
AND t1.added>'2015-10-31'
GROUP BY t1.subthing, thing)
as b using (subthing, thing, tnumber) ;
现在我需要添加一个条件,从T1
的记录,其中T1.pid
不在T2.pid
和t2.h1=false
不应给最终结果。
非常感谢您的帮助。
我没有得到为什么2,4被排除在外..他们的'子事物'是不相同的 –
因为已经有相同的子事物(ID 3/6)与更高的Tnumber –