MySQL的選擇不同的值我有兩個表:跨多個表
table_1
uid | xid | name
table_2
uid | elements | time | pkey
我想選擇的XID,元件和時間的多行,其中時間是10個最小值和uid(或XID)是不同的。
UID,XID在TABLE_1是獨一無二的,在TABLE_1和TABLE_2 UID之間的關係是一對多..
我想是這樣的,但它不是真正的工作太清楚:
SELECT table_1.xid, MIN(table_2.time), table_2.elements
FROM table_1, table_2
WHERE table_1.uid= table_2.uid
GROUP BY table_2.uid
LIMIT 10
讓我們一些數據來玩弄:
table_1
uid | xid | name
1 | 435 | John
2 | 596 | Jane
table_2
uid | elements | time | pkey
1 | 1 | 567 | 0
2 | 2 | 335 | 1
1 | 1 | 435 | 2
1 | 2 | 456 | 3
2 | 1 | 337 | 4
1 | 1 | 428 | 5
我怎麼會選擇每個UID頂部2個不同的結果? 在這種情況下:
fid| elements | time
596| 2 | 335
435| 1 | 428
謝謝!
如果人們不明白,爲什麼lexu的解決方案不工作 - 它不綁定到主鍵上表2
如果我上面的數據更改爲:
table_2
uid | elements | time | pkey
1 | 1 | 567 | 0
2 | 2 | 335 | 1
1 | 1 | 435 | 2
1 | 2 | 456 | 3
2 | 1 | 337 | 4
1 | 2 | 428 | 5
保持TABLE_1相同那麼結果應該是:
fid| elements | time
596| 2 | 335
435| 2 | 428
但@ lexu的解決方案的結果是:
fid| elements | time
596| 2 | 335
435| 1 | 428
儘管如此,感謝大家的幫助,尤其是@eagle!
難道你不忘記什麼?這些表格之間的連接是什麼? xid - > uid? JOIN + GROUP BY不適合你嗎? – 2010-05-06 07:42:20
uid - > uid ..我將在上面解釋更多.. – PoorCoder 2010-05-06 07:53:24
通過XID做你的小組..然後它應該工作 – lexu 2010-05-06 08:07:19