[英]How to select mysql results?
发票
+----+-----+---------+-------+
| Sr | BRN | Name | Amnt |
+----+-----+---------+-------+
| 1 | 1 | John | 10 |
| 2 | 1 | John | 4 |
| 3 | 2 | Belly | 4 |
| 4 | 3 | John | 14 |
| 5 | 4 | John | 5 |
| 6 | 4 | John | 14 |
+----+-----+---------+-------+
我想选择除重复的BRN之外的所有行。 (如果BRN中有两个/多个ge,则只能选择一个)
我试过了:
SELECT *(DISTINCT BRN) FROM invoice
预期结果:
+-----+---------+-------+
| BRN | Name | Amnt |
+-----+---------+-------+
| 1 | John | 10 |
| 2 | Belly | 4 |
| 3 | John | 14 |
| 4 | John | 5 |
+-----+---------+-------+
选择*从发票日期> =:fdate GROUP BY BRN
给出下表:
+----+-----+---------+-------+
| Sr | BRN | Name | Amnt |
+----+-----+---------+-------+
| 1 | 1 | John | 10 |
| 2 | 1 | John | 4 |
| 3 | 2 | Belly | 4 |
| 4 | 3 | John | 14 |
| 5 | 4 | John | 5 |
| 6 | 4 | John | 14 |
+----+-----+---------+-------+
具有预期的结果:
+-----+---------+-------+
| BRN | Name | Amnt |
+-----+---------+-------+
| 1 | John | 10 |
| 2 | Belly | 4 |
| 3 | John | 14 |
| 4 | John | 5 |
+-----+---------+-------+
困难的部分是获取金额,因为它是任意的,更不用说Amnt
中的值在此结果中几乎毫无价值。
如果要使用不同的BRN,查询将是SELECT DISTINCT BRN FROM invoice
您甚至可以SELECT DISTINCT BRN, Name FROM invoice
中间步骤是SELECT BRN,Name FROM invoice GROUP BY BRN, Name
但是,如果您尝试在公式中包含Amnt
,则查询将失败,因为数据库无法确定要显示的Amnt。
因此,您可以尝试以下操作:
SELECT a.BRN, a.Name, b.Amnt FROM invoice AS a LEFT JOIN invoice AS b ON a.BRN=b.BRN
但是,不能保证会选择哪个Amnt。
希望能有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.