简体   繁体   English

Mysql错误代码:1242子查询返回多于1行

[英]Mysql Error code: 1242 Subquery returns more than 1 row

Everything seemed to be working fine, then all of a sudden I am getting this error on my front-end: 一切似乎都正常,然后突然我在前端收到此错误:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[21000]: Cardinality violation: 1242 Subquery returns more than 1 row' in /var/www/html/system/home.php:78 Stack trace: #0 /var/www/html/system/home.php(78): PDOStatement->execute() #1 {main} thrown in /var/www/html/system/home.php on line 78 致命错误:/var/www/html/system/home.php:78中堆栈错误:未捕获的异常“ PDOException”,消息为“ SQLSTATE [21000]:基数违反:1242子查询返回多于1行”:堆栈跟踪:#0 / var / www / html / system / home.php(78):第78行上的/var/www/html/system/home.php中抛出了PDOStatement-> execute()#1 {main}

Under Workbench every VIEW I had created earlier is giving out this error: Mysql Error code: 1242 Subquery returns more than 1 row. 在工作台下,我之前创建的每个VIEW都发出此错误: Mysql Error code: 1242 Subquery returns more than 1 row.

Here is an example of one code that's giving the error. 这是给出错误的一个代码示例。

SELECT 
    `teams`.`id` AS `id`,
    `teams`.`name` AS `team_name`,
    `teams_and_captains_view`.`captain` AS `captain`,
    IF((`teams`.`gender` = 'M'),
        'Male',
        'Female') AS `gender`,
    (SELECT 
            `categories`.`name`
        FROM
            `categories`
        WHERE
            (`categories`.`id` = `teams`.`category_id`)) AS `category`,
    `teams`.`category_id` AS `category_id`,
    `teams`.`slogan` AS `slogan`,
    `teams`.`location` AS `location`,
    `teams`.`description` AS `description`,
    `teams`.`phone` AS `phone`,
    `teams`.`email` AS `email`,
    `teams`.`tournament_id` AS `tournament_id`,
    (SELECT 
            COUNT(`players`.`id`)
        FROM
            `players`
        WHERE
            (`players`.`team_id` = `teams`.`id`)) AS `players`,
    `teams_and_captains_view`.`captain_id` AS `captain_id`
FROM
    (`teams`
    LEFT JOIN `teams_and_captains_view` ON ((`teams`.`id` = `teams_and_captains_view`.`id`)))

It seems to work when I use LIMIT, but I can't use LIMIT. 使用LIMIT时似乎可以使用,但不能使用LIMIT。

Thank you in advance 先感谢您

Error code 1242 will be returned when Your subquery returns more than one row for comparison. 当您的子查询返回多行进行比较时,将返回错误代码1242。

Please check if you have inserted any duplicate data by mistake. 请检查是否误插入了任何重复数据。

http://dev.mysql.com/doc/refman/5.7/en/subquery-errors.html http://dev.mysql.com/doc/refman/5.7/en/subquery-errors.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM