我正在寫一個管理註冊到關聯的人的小工具。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