gpt4 book ai didi

MySQL 基数违规错误

转载 作者:行者123 更新时间:2023-11-29 11:24:15 24 4
gpt4 key购买 nike

我正在尝试创建一个 SQL 查询,其中用户表与运动员表连接。除此之外,我还想计算 Athlete_Event_Run 表和 Athlete_Personal_Run 表中的总条目数。当我在 PHP 上运行此 sql 查询时,出现 SQLSTATE[21000] 错误:

Uncaught exception 'PDOException' with message 'SQLSTATE[21000]: Cardinality violation: 1241 Operand should contain 1 column(s)' in /var/www/html/ibaleka/get_athlete_profile_extended.php:14

我已将 SQL 代码放入存储过程中,这就是我的想法:

  SELECT * FROM `User` 
LEFT OUTER JOIN Athlete ON Athlete.UserID = `User`.UserID
WHERE `User`.EmailAddress = emailAddress
AND (SELECT Athlete_Event_Run.AthleteID, COUNT(*) AS TotalEventRun FROM Athlete_Event_Run WHERE Athlete_Event_Run.AthleteID = `User`.UserID GROUP BY Athlete_Event_Run.AthleteID)
AND (SELECT Athlete_Personal_Run.AthleteID, COUNT(*) AS TotalPersonalRun FROM Athlete_Personal_Run WHERE Athlete_Personal_Run.AthleteID = `User`.UserID GROUP BY Athlete_Personal_Run.AthleteID);

谢谢:)

最佳答案

你内心深处的疑问没有任何意义。您返回的列太多,是 2 列而不是 1 列。它试图为您转换为逻辑 bool 值,但您完全混淆了它。

是否决心

and (1)
and (false)

会有机会的。但你不是,因为你有一个列加上一个聚合(乘以 2 个子查询)。即使是其中的一个也会让它窒息。你有两个。

来自手册页Subquery Errors错误1241:

You may use a subquery that returns multiple columns, if the purpose is row comparison. In other contexts, the subquery must be a scalar operand.

关于MySQL 基数违规错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38494395/

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