[解決済み】MySQL - オペランドは1つのカラムを含む必要があります。
2021-12-28 06:10:48
質問
最近、次のようなSQLクエリを書きました。
SELECT
topics.id,
topics.name,
topics.post_count,
topics.view_count,
COUNT( posts.solved_post ) AS solved_post,
(SELECT users.username AS posted_by,
users.id AS posted_by_id
FROM users
WHERE users.id = posts.posted_by)
FROM topics
LEFT OUTER JOIN posts ON posts.topic_id = topics.id
WHERE topics.cat_id = :cat
GROUP BY topics.id
PDOを使用しているので、PHPのコードによってバインドされています。2は":cat"の有効な値です。
このコードを実行すると、エラーが発生します。
#1241 - Operand should contain 1 column(s)
このコードからは、列を選択し、別のテーブルからさらに2つ選択して、続けることに何の問題もないように見えますが...。
どのように解決するのですか?
サブクエリは2つのカラムを選択していますが、あなたは1つのカラムを投影するためにサブクエリを使用しています(外側の
SELECT
節があります)。このようなクエリからは、この文脈では1つのカラムしか選択できません。
に結合することを考える。
users
テーブルから取得するカラムをより柔軟に選択することができます。
users
.
SELECT
topics.id,
topics.name,
topics.post_count,
topics.view_count,
COUNT( posts.solved_post ) AS solved_post,
users.username AS posted_by,
users.id AS posted_by_id
FROM topics
LEFT OUTER JOIN posts ON posts.topic_id = topics.id
LEFT OUTER JOIN users ON users.id = posts.posted_by
WHERE topics.cat_id = :cat
GROUP BY topics.id
関連
-
MySQL インタビューの質問 - ハッシュインデックスを設定する方法
-
[解決済み】マルチパート識別子をバインドできない
-
SQLException。オペランドは1列でなければなりません。
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] MySQLのAUTO_INCREMENTをリセットする方法
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?
-
[解決済み] 各グループの最後のレコードを取得する - MySQL
-
[解決済み] MYSQLでMAX(列の値)、PARTITIONで別の列で行を選択するにはどうすればよいですか?
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQLはこのようなUpdateステートメントを書くべきではありません
-
MySQLインストールチュートリアル(Windows用)詳細
-
MySql認証ベースのvsftpd仮想ユーザー
-
面接では選択式で聞かれましたが......。.for updateはテーブルをロックするか、行をロックするか?
-
MySQLの一般的な分割ライブラリおよび分割テーブルスキームの概要
-
Mysql がエラーを報告 オペランドには 1 つのカラムが含まれている必要があります。
-
SQLステートメントエラーです。オペランドには 1 つのカラムを含める必要があります [括弧を追加せずに複数のフィールドをクエリする
-
mysql がエラーを報告します。不明な文字セットです。'utf8mb4'
-
[解決済み] SQLでカラムに最大値を持つ行のみを選択する [重複]。
-
[解決済み】MySQLの "NOT IN "クエリ