問題タブ [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.
mysql - MySQL のサブクエリで GROUP_CONCAT を使用する
別のテーブルからの ID のリストを含めたい MySQL クエリがあります。Web サイトでは、ユーザーは特定のアイテムを追加でき、それらのアイテムをお気に入りに追加できます。私は基本的に、そのアイテムをお気に入りに登録した人の ID のリストを取得したいと考えています (これは少し単純化されていますが、要約すると次のようになります)。
基本的に、私は次のようなことをします:
このようにして、コード内で idlist を後で PHP の配列に分割することで、誰がアイテムをお気に入りにしたかを示すことができますが、次の MySQL エラーが発生します。
1242 - サブクエリが複数の行を返す
GROUP_CONCAT
それが、たとえばCONCAT
?の代わりに使用するポイントのようなものだと思いました。私はこれについて間違った方法で進んでいますか?
わかりました、これまでの回答に感謝します。うまくいくようです。ただし、落とし穴があります。そのユーザーによって追加されたアイテムもお気に入りと見なされます。そのため、作成者 = ユーザー ID かどうかを確認するために、追加のチェックが必要になります。誰かがこれを行うためのスマートな(そしてできれば効率的な)方法を考え出すのを手伝ってもらえますか?
ありがとうございました!
編集:私はこれをやろうとしました:
そしてidlistは空です。INNER JOIN
代わりに使用するLEFT JOIN
と、空の結果が得られることに注意してください。ON要件を満たす行があると確信していますが。
mysql - 不可解な内部クエリ
理解できない結果を示す入れ子になった SQL クエリがあります。このクエリは、PARTNER_USER テーブルを介して PARTNER テーブルと USER テーブルを結合します。パートナーは基本的にユーザーの集まりであり、このクエリの目的は、ID 34 を持つパートナーに登録された 20 番目のユーザーがいつ登録されたかを把握することです。
ただし、最後の2行目を次のように変更すると
クエリは、「サブクエリが複数の行を返します」というエラー メッセージで失敗します。最初のクエリは機能するのに、2 番目のクエリは機能しないのはなぜですか? 彼らは私と同等に見えます。
ありがとう、ドン
mysql - MySQL でのサブクエリによる選択 (ANY および IN を使用したサブクエリ)
素晴らしい答えをありがとう!
詳細については
これは説明するのが難しいので、舞台を設定しましょう...
グループaのアクションを選択したい。私の考えは
しかし、明らかに、このサブクエリは複数の行を返します。JOIN を使用する必要がありますか?
mysql - Mysql::エラー: サブクエリが複数の行を返します:
私の Rails アプリでは、サブクエリが必要なため、find_by_sql() を使用して SQL クエリを実行しています。これは、最初または2番目のクエリを実行すると機能しますが、それらをANDで追加すると、サブクエリで複数の行について不平を言い始めます。
条件に一致するすべての行 (レコード) が返されるようにします。ここで何を修正/変更する必要がありますか? 1行だけが欲しいとmysqlに伝えているのは何ですか?
rails ログに表示される結果の SQL は次のとおりです。
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データベースを使用しています。
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にリンクされています
これは私の質問です:
php - MySQL ベンチマーク
MySQL ベンチマークを使用していくつかのクエリをテストしようとしています。しかし、私はエラーが発生しています。
その見返りに、このエラーが発生します。
クエリをベンチマークする方法を知っている人はいますか?
ありがとう
mysql - サブクエリを手伝ってください!複数の行を返します
複数の行を返す問題がわかりません:
ここに私のテーブルBBCがあります:
質問:
「インド」、「イラン」を含む地域の国の名前と地域をリストします。
これは私の声明です:
戻ります:
私の発言の何が問題なのですか?答えは、選択ステートメント内の選択ステートメントの形式である必要があります
ありがとう!
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 がなくても機能します。
ちなみに、「サブクエリは複数の行を返します」というエラーが表示されます。
mysql - MySQLの異なるバージョンその他の結果
ねえ、私はWindows5.1.39-communityとLinux5.1.39-logに2つのバージョンのmysqlを持っています。クエリを実行します。
Windowsでは想定どおりに機能しますが、Linuxでは次のように表示されます。
mysqlの更新/ダウングレードなしでLinux上で動作させる方法はありますか?