gpt4 book ai didi

php - 使用 JOIN 语句时,三个表中的数据重复

转载 作者:行者123 更新时间:2023-11-30 00:07:07 25 4
gpt4 key购买 nike

当我使用 JOIN 从表中检索数据时,行会重复。这些 table 共有三张。

Students
--------
StuID | Name |
1 | Appiah John |
2 | Minister A |

Levels
------
| LevelID | Level | Year | StuID |
| 08 | 100 | 2010 | 2 |
| 83 | 200 | 2011 | 1 |
| 45 | 200 | 2011 | 2 |


Ranks
-----
| RankID | Rank | StuID |
| 101 | 1st | 1 |
| 404 | 4th | 2 |

这是我的查询语句,用于从三个表中选择一些数据

SELECT 
m.StuID,
n.Level,
n.Year,
o.Rank
FROM
Students m
INNER JOIN
Levels n
ON
m.StuID=n.StuID
INNER JOIN
Ranks o
ON
m.StuID=o.StuID
WHERE
m.StuID=2;

输出

上面的查询产生重复的答案

| StuID | Level | Year  |Rank  |
| 2 | 100 | 2010 | 4th |
| 2 | 200 | 2011 | null |
| 2 | 100 | 2010 | 4th |
| 2 | 200 | 2011 | null |

期望输出

因此我希望输出如下所示

| StuID | Level | Year  |Rank  |
| 2 | 100 | 2010 | 4th |
| 2 | 200 | 2011 | null |

问题

  1. 我哪里出错了?
  2. 连接是从这样的三个表中选择数据的最佳方式吗?
  3. 如何进行查询以获得所需的输出?

最佳答案

不管你信不信,我认为 Students mINNER JOIN 之间的逗号正在发挥作用。您现在从两个单独的元组中进行选择,在任何子句上连接,而不是将第一个表连接到第二个表到第三个表。

关于php - 使用 JOIN 语句时,三个表中的数据重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24437766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com