我正在尝试做这样的事情:
select * from receipt where branch=:branch AND distinct transactionid
然而,这不起作用并带来所有结果。我只需要获得符合我需要的所有信息,并且有一个独特的transaction
。因此,这可能包括firstname lastname以及数据库中每个列表存储的所有信息,因为我稍后会使用所有这些信息。
让我说我有:
+--------+-----------+----------+-----------------+
| first | last | item | transactionid |
+--------+-----------+----------+-----------------+
| jack | sparrow | water | 1234 |
| jack | sparrow | food | 1234 |
| jack | sparrow | wood | 1234 |
+--------+-----------+----------+-----------------+
我希望所有带有名字jack(其中任何一个)的列表都有一个不同的transactionid ...
甚至可以这样做吗?
答案 0 :(得分: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
。