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