問題タブ [mysql-error-1242]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
77198 参照

mysql - MySQL のサブクエリで GROUP_CONCAT を使用する

別のテーブルからの ID のリストを含めたい MySQL クエリがあります。Web サイトでは、ユーザーは特定のアイテムを追加でき、それらのアイテムをお気に入りに追加できます。私は基本的に、そのアイテムをお気に入りに登録した人の ID のリストを取得したいと考えています (これは少し単純化されていますが、要約すると次のようになります)。

基本的に、私は次のようなことをします:

このようにして、コード内で idlist を後で PHP の配列に分割することで、誰がアイテムをお気に入りにしたかを示すことができますが、次の MySQL エラーが発生します。

1242 - サブクエリが複数の行を返す

GROUP_CONCATそれが、たとえばCONCAT?の代わりに使用するポイントのようなものだと思いました。私はこれについて間違った方法で進んでいますか?


わかりました、これまでの回答に感謝します。うまくいくようです。ただし、落とし穴があります。そのユーザーによって追加されたアイテムもお気に入りと見なされます。そのため、作成者 = ユーザー ID かどうかを確認するために、追加のチェックが必要になります。誰かがこれを行うためのスマートな(そしてできれば効率的な)方法を考え出すのを手伝ってもらえますか?

ありがとうございました!

編集:私はこれをやろうとしました:

そしてidlistは空です。INNER JOIN代わりに使用するLEFT JOINと、空の結果が得られることに注意してください。ON要件を満たす行があると確信していますが。

0 投票する
4 に答える
283 参照

mysql - 不可解な内部クエリ

理解できない結果を示す入れ子になった SQL クエリがあります。このクエリは、PARTNER_USER テーブルを介して PARTNER テーブルと USER テーブルを結合します。パートナーは基本的にユーザーの集まりであり、このクエリの目的は、ID 34 を持つパートナーに登録された 20 番目のユーザーがいつ登録されたかを把握することです。

ただし、最後の2行目を次のように変更すると

クエリは、「サブクエリが複数の行を返します」というエラー メッセージで失敗します。最初のクエリは機能するのに、2 番目のクエリは機能しないのはなぜですか? 彼らは私と同等に見えます。

ありがとう、ドン

0 投票する
6 に答える
10604 参照

mysql - MySQL でのサブクエリによる選択 (ANY および IN を使用したサブクエリ)

素晴らしい答えをありがとう!

詳細については


これは説明するのが難しいので、舞台を設定しましょう...

グループaのアクションを選択したい。私の考えは

しかし、明らかに、このサブクエリは複数の行を返します。JOIN を使用する必要がありますか?

0 投票する
2 に答える
3862 参照

mysql - Mysql::エラー: サブクエリが複数の行を返します:

私の Rails アプリでは、サブクエリが必要なため、find_by_sql() を使用して SQL クエリを実行しています。これは、最初または2番目のクエリを実行すると機能しますが、それらをANDで追加すると、サブクエリで複数の行について不平を言い始めます。

条件に一致するすべての行 (レコード) が返されるようにします。ここで何を修正/変更する必要がありますか? 1行だけが欲しいとmysqlに伝えているのは何ですか?

rails ログに表示される結果の SQL は次のとおりです。

0 投票する
4 に答える
1721 参照

mysql - MySqlが「サブクエリが複数の行を返す」エラーを出すのはなぜですか?

こんにちは男私は私のテーブルエステートから私のアクティブレコードを選択しています、そして他のすべてのレコードは問題ありませんが、アクティブレコードは私にエラーを与えます私のコードは

@query = Estate.find_by_sql "SELECT(e.name)as Estate_name、g.name as Governmenting_body、" + "(select count()from Stands s where s.estate_id = e.id AND#{filter_estates})as total_stands、 "+"(select e.active from Estates e where e.active = true AND#{filter_estates})as Estate_status、 "+"(select count()from services sp where sp.estate_id = e.id AND#{filter_estates} )as service_providers、 "+"(select count(*)from expected_vendors av where av.estate_id = e.id AND#{filter_estates})as vendors "+" FROM Estates e LEFT JOIN Governmenting_bodies g on e.governing_body_id = g.id AND#{filter_estates} "

エラーが発生します。

(Mysql :: Error:サブクエリは複数の行を返します:SELECT(e.name)as Estate_name、g.name as Governmenting_body、(select count()from Stands s where s.estate_id = e.id AND e.id IS NOT NULL)as total_stands、(select e.active from Estates e where e.active = true AND e.id IS NOT NULL)as Estate_status、(select count()from services sp where sp.estate_id = e.id AND e.id IS NOT NULL)as service_providers、(select count(*)from expected_vendors av where av.estate_id = e.id AND e.id IS NOT NULL)as vendors FROM Estates e LEFT JOIN Governmenting_bodies g on e.governing_body_id = g.id AND e.idはNULLではありません):

そして、アクティブと非アクティブのすべてのエステートを表示したいと思います。

みんなお願いします、どうすればこの問題を解決できますか。私はMysqlデータベースを使用しています。

0 投票する
1 に答える
1085 参照

mysql - Mysql Multiple Concat内部結合、1つの名前のみを指定

私は3つのテーブルを持っています。

それは私にこのエラーを与えました:サブクエリは複数の行を返します

しかし、私が必要としているのは、すべての「BeziehKuBez」コンマが1つの列に分かれていることです。
例えば。Beziehname1、Beziehname2、..。

でテストした場合は、CONCAT_WS(',', BeziehKuBez)。しかし、私に同じものをください。whileループでこれを行うことはできますか?しかし、私は方法がわかりませんか?!

更新:グレッグの答え について:

GROUP_CONCAT()彼にと同じ出力を与えますconcat()

「Anlass」ごとに1つの名前のみ。ただし、1つの「Anlass」に対して複数の名前をコンマで区切る必要があります。

テーブル構造:

テーブルアンラス:

AnlID、anlass_name

テーブルStammdaten_beziehungen

BeziehID、Beziehkubez

テーブルParameter_zuweisung_anl

ZuwAnlID、ZuwAnlAnlNr、ZuwAnlBeziehID

INFOZuwAnlAnlNr はAnlass.AnlIDにリンクされていますZuwAnlBeziehIDはBeziehung.BeziehIDにリンクされています

これは私の質問です:

0 投票する
3 に答える
11535 参照

php - MySQL ベンチマーク

MySQL ベンチマークを使用していくつかのクエリをテストしようとしています。しかし、私はエラーが発生しています。

その見返りに、このエラーが発生します。

クエリをベンチマークする方法を知っている人はいますか?

ありがとう

0 投票する
3 に答える
1172 参照

mysql - サブクエリを手伝ってください!複数の行を返します

複数の行を返す問題がわかりません:

ここに私のテーブルBBCがあります:

質問:

「インド」、「イラン」を含む地域の国の名前と地域をリストします。

これは私の声明です:

戻ります:

私の発言の何が問題なのですか?答えは、選択ステートメント内の選択ステートメントの形式である必要があります

ありがとう!

0 投票する
3 に答える
1083 参照

php - UPDATE で WHERE id IN が機能しない

UPDATE statistics'
SET money = money + '$money'
WHERE member_id IN
((SELECT member_id FROM races WHERE l_id = '$mem_id'), $other_id)

それの何がいけないの?レースからすべての member_id を取得し、member_id $other_id にも含めたいと考えています。$other_id がなくても機能します。

ちなみに、「サブクエリは複数の行を返します」というエラーが表示されます。

0 投票する
2 に答える
85 参照

mysql - MySQLの異なるバージョンその他の結果

ねえ、私はWindows5.1.39-communityとLinux5.1.39-logに2つのバージョンのmysqlを持っています。クエリを実行します。

Windowsでは想定どおりに機能しますが、Linuxでは次のように表示されます。

mysqlの更新/ダウングレードなしでLinux上で動作させる方法はありますか?