我正在尝试做这样的事情:
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...
这能做到吗?
最佳答案
试试这个,
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
。
关于php - 选择 * 不同的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13446457/