php - 选择 * 不同的地方

标签 php mysql sql

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

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/

相关文章:

php - 从 MySQL 生成表到 PDF(使用 PHP)

java - 从 Oracle 迁移到 MySQL

php - 在php中使用Ajax传递的数组向MYSQL数据库表中插入记录

php - 在 Codeigniter 中创建跟踪表。使用 Foreach 插入数据

php - 如何每4小时自动清空一张 table ?

php - wpdb::prepare() 使用多个占位符 (args)

python - Django - 列中的空值违反了 Django Admin 中的非空约束

mysql - 如何在最大 ID 处获取最大数据

php - 结合两种资源 PHP

php - Wampserver 2.1 在 Windows 7 上安装后显示橙色图标