1

我正在尝试做这样的事情:

select * from receipt where branch=:branch AND distinct transactionid

但是,这不起作用并会显示所有结果。我只需要获取与我需要的信息相匹配并且具有独特的transaction. 所以这可能包括名字姓氏和数据库中每个列表存储的所有信息,因为我稍后会使用所有这些信息。

可以说我有:

+--------+-----------+----------+-----------------+
| first  |  last     |  item    |  transactionid  |
+--------+-----------+----------+-----------------+
| jack   |  sparrow  |  water   |    1234         |
| jack   |  sparrow  |  food    |    1234         |
| jack   |  sparrow  |  wood    |    1234         |
+--------+-----------+----------+-----------------+

我希望所有名称为 jack 的列表(其中任何一个)都具有不同的 transactionid...

这甚至可以做到吗?

4

1 回答 1

4

试试这个,

SELECT  a.*
FROM    tableName a
        INNER JOIN
        (
            SELECT  transactionID, MIN(item) minItem
            FROM    tableName
            GROUP BY transactionID
        ) b ON a.transactionID = b.transactionID AND
                        a.item = b.minItem
// -- WHERE branch =: branch

感谢您的编辑 zerkms

那么子查询是做什么的呢?

好吧,它只得到一个项目transactionID。你也可以MAX在上面使用。

于 2012-11-19T01:24:26.617 回答