MySQL根据链接表中的日期获取最后结果
我有个问题需要你的帮助 我将在示例场景中解释问题所在 有三张桌子:A、B、C。 B和C与表A有多对一关系。 B和C表中的一个条目有多个条目。 我需要一个查询结果,其中只有来自B和C的一个条目,但必须选择该条目,以便返回来自B和C的最新日期条目。我不能依赖B和C的ID,因为它们没有订购,也不能保证最大的ID是正确的。B和C中条目的日期是唯一有效的标准 下面是一个示例数据:MySQL根据链接表中的日期获取最后结果,mysql,join,inner-join,outer-join,Mysql,Join,Inner Join,Outer Join,我有个问题需要你的帮助 我将在示例场景中解释问题所在 有三张桌子:A、B、C。 B和C与表A有多对一关系。 B和C表中的一个条目有多个条目。 我需要一个查询结果,其中只有来自B和C的一个条目,但必须选择该条目,以便返回来自B和C的最新日期条目。我不能依赖B和C的ID,因为它们没有订购,也不能保证最大的ID是正确的。B和C中条目的日期是唯一有效的标准 下面是一个示例数据: Table A tableaid | Some data ... ------------------ 1 | ....
Table A
tableaid | Some data ...
------------------
1 | ....
2 | ....
3 | ....
4 | ....
...
Table B
id | linkid | date | colb | Some data ...
----------------------------------------------
1 | 1 | 01/01/2000 | A1 | ....
2 | 1 | 05/20/2001 | A2 | ....
3 | 1 | 07/10/2002 | A3 | ....
4 | 2 | 10/27/2000 | B1 | ....
5 | 2 | 01/01/2001 | B2 | ....
6 | 2 | 06/01/2002 | B3 | ....
7 | 3 | 05/01/2000 | C1 | ....
8 | 3 | 01/01/2003 | C2 | ....
9 | 4 | 05/01/2004 | D1 | ....
...
Table C
id | linkid | date | colc | Some data ...
----------------------------------------------
1 | 1 | 01/01/2000 | a1 | ....
3 | 1 | 05/20/2005 | a2 | ....
2 | 2 | 07/10/2000 | b1 | ....
4 | 2 | 10/27/2003 | b2 | ....
8 | 2 | 01/01/2005 | b3 | ....
6 | 3 | 06/01/2001 | c1 | ....
9 | 3 | 05/01/2005 | c2 | ....
5 | 4 | 01/01/2000 | d1 | ....
7 | 4 | 05/01/2004 | d2 | ....
...
Result
=============================================
tableaid | colb | colc | Some other data ...
---------------------------------------------
1 | A3 | a2 | ...
2 | B3 | b3 | ...
3 | C2 | c2 | ...
4 | D1 | d2 | ...
...
我知道如何做到这一点,只有A和B或C,但不与A和B,C。任何帮助表示感谢。我有饼干:)像这样使用子选择
select a.*,
(select colb from tableb b where b.linkid = a.tableaid order by b.date desc limit 1) as colb
from tablea a
colc的类似内容。日期遵循SQL中的特定格式。这不是它@是的,我同意。手工作曲,却忘了。。。但问题的关键仍然可以通过使用或不使用适当的SQL格式符号来推断。非常感谢@ain,这正是我所需要的!