【发布时间】:2012-03-01 16:22:40
【问题描述】:
我有以下表格:
mysql> select * from F_FINDINGS;
+---------+------------+
| F_ID | CONFIDENCE |
+---------+------------+
| 1 | 100 |
| 2 | 70 |
| 2 | 0.35 |
| 1 | 100 |
+---------+------------+
mysql> select * from F_THINGS;
+---------+-------------------+--------+------------+
| F_ID | F_TITLE | S_ID | F_VALUE |
+---------+-------------------+--------+------------+
| 1 | STUFF A | 1 | 1.1 |
| 2 | STUFF C | 1 | 202.2 |
| 3 | OBJECT P | 1 | 10.7 |
| 4 | Things X | 2 | 540 |
| 5 | STUFF D | 2 | 1080 |
| 6 | OBJECT M | 2 | 455 |
| 7 | Things A | 3 | 333 |
| 8 | Things B | 4 | 825 |
| 9 | STUFF A | 1 | 103.4 |
| 10 | STUFF A | 1 | 98.4 |
+---------+-------------------+--------+------------+
mysql> select * from DUMP;
+--------+----------+
| D_ID | D_NAME |
+--------+----------+
| 1 | E0 |
| 2 | A1 |
| 3 | AB |
+--------+----------+
mysql> select * FROM STUFF;
+--------+--------+-------------------+
| S_ID | D_ID | S_TITLE |
+--------+--------+-------------------+
| 1 | 1 | plastic |
| 2 | 2 | metal |
| 3 | 3 | wood |
| 4 | 3 | gel |
+--------+--------+-------------------+
我正在使用以下查询
SELECT
d.D_NAME,
s.S_TITLE,
f.F_VALUE,
IF(r.CONFIDENCE IS NULL, 'N/A', CONCAT((r.CONFIDENCE),'%')AS CONFIDENCE
FROM F_THINGS f
JOIN STUFF s ON s.S_ID=f.S_ID
JOIN DUMP d on d.D_ID=s.D_ID
LEFT JOIN F_FINDINGS r ON f.F_ID=r.F_ID;
期望的结果:
+----------+-----------+------------+------------+
| D_NAME | S_TITLE | F_VALUE | CONFIDENCE |
+----------+-----------+------------+------------+
| E0 | plastic | 202.2 | 70% |
| E0 | plastic | 10.7 | N/A |
| E0 | plastic | 1.1 | 100% |
| A1 | metal | 540 | N/A |
| A1 | metal | 1080 | N/A |
| A1 | metal | 455 | N/A |
| AB | wood | 333 | N/A |
| AB | wood | 825 | N/A |
| E0 | gel | 103.4 | N/A |
| E0 | gel | 98.4 | N/A |
+----------+-----------+------------+------------+
我只想要每个显示的最高值
【问题讨论】:
-
你的“STUFF”样本数据在哪里......还有,最高价值?还是最高的信心?只是确保
-
@DRapp 我将添加“东西”表。对不起,我把它漏掉了。我想要最高的信心
-
@VAShhh 期望的输出列在最底部,上面写着“期望的结果”
-
那我不理解你想要的输出。如果你想要最高的信心......最高的每什么...... D_Name,S_Title?您正在显示 3、3、2、2 个条目。例如:您是否只想看到“E0 - 塑料 - 1.1 of 100%”,而其他“E0 - 塑料 - 202.2 at 70%”?
-
@DRapp 如果您查看 F_FINDINGS 表。我只想显示 F_ID 的最高置信度(来自 F_FINDINGS 表)
标签: mysql select inner-join