我正在写一个管理注册到关联的人的小工具。SQL:一对多,只选择一个
我有一个表USERS
和一个表CARDS
。每个用户可以有多张卡片(因为卡片到期)。
有一个查询,我想提取所有用户信息加上所有卡信息只适用于最新的卡(字段:ISSUEDATE)。
这是一个非常简单的例子:
USERS表
IDUSER NAME SURNAME
------------------------
1 Robert Hill
牌桌
IDCARD IDOWNER ISSUEDATE DESC
----------------------------------------
1 1 2010-01-01 'CARD ONE'
2 1 2010-08-18 'CARD TWO'
基本上我想从我的查询这些字段后面:
IDUSER NAME SURNAME IDCARD IDOWNER ISSUEDATE DESC
---------------------------------------------------------------
1 Robert Hill 2 1 2010-08-18 'CARD TWO'
我试过,但我不能管理:(
编辑: 如果有链接到用户无卡,会发生什么? (一位用户已经注册,但该协会尚未给他/她任何卡)。无论如何,有什么办法来调整这个查询以获取用户信息?这个想法是为每个用户获取所有可能的信息。此信息稍后将在广告ExtJS应用程序上通过JSON使用。
感谢您的回答。
按照堆栈溢出中的其他几十个类似问题的'greatest-n-per-group'标签。 – 2010-08-19 20:55:51
“如果没有与用户关联的无卡,会发生什么?”你想要发生什么?无法返回任何记录,或者来自CARDS表的记录字段可能设置为NULL。 – strager 2010-08-20 06:23:20
是的,我的编辑不清楚,对不起。最好的办法是为所有CARDS列获得一组NULL值,以防用户还没有任何卡。 – Danilo 2010-08-20 06:29:19