すべてが、私は私のフロントエンドでこのエラーを取得しています突然、その後、正常に動作しているように見えたが返されます。ワークベンチの下MySQLエラーコード:1242サブクエリが複数の1行
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
私が持っていたすべてのVIEWをMysql Error code: 1242 Subquery returns more than 1 row.
エラーを出すコードの例を以下に示します。
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`)))
LIMITを使用すると動作するようですが、LIMITは使用できません。
は、事前にありがとうあなたのサブクエリは、比較のために1行よりも多くの を返す場合
あなた 'categories'テーブルは、おそらく同じ' id'で重複する行が含まれています。重複を削除して 'id'をプライマリキーにしてみてください – FuzzyTree
サブセレクションを使って擬似カラムを作成しているので、__must__は1つの値しか返しません - カラムは1つの行に複数の値を持つことはできません。 LIMITを使用できない場合は、間違ったアプローチを選択した可能性があります。あなたの質問には、テーブル構造、サンプルデータ、予想される出力、あるいはあなたが実際にここで達成しようとしていることに関する説明が含まれていないので、どちらが適しているかは分かりません。 – CBroe
私はFuzzyTreeここに。クエリが正常に表示されるため、説明されているデータベースの矛盾でなければなりません。 –