1

エラーが発生する理由: サブクエリが複数の行を返す

 SELECT name, cat_id,
    (
    SELECT topic
    FROM category
    WHERE cat = u.cat_id
    ) AS topics
    FROM name u

ありがとう

4

9 に答える 9

3

ばかげた答えかもしれませんが、なぜ JOIN を使用しないのですか?

SELECT name.cat_id, name.name, category.topic
FROM name INNER JOIN category 
ON category.cat = name.cat_id
于 2010-08-03T08:08:18.807 に答える
1

サブクエリ:

SELECT topic
FROM category
WHERE cat = u.cat_id

複数の結果を返しています-それを単一の行に収めようとしています。

于 2010-08-03T08:06:35.033 に答える
0

同じ猫の行が2つあるからです(カテゴリを意味すると思います)

于 2010-08-03T08:06:25.517 に答える
0

そのカテゴリ ID のトピックが他にもあります。

于 2010-08-03T08:06:48.963 に答える
0

はい、そうです。あなたの場合、複数の行を返します。あなたは何をしたいですか?

サブクエリの最後に LIMIT 1 を追加すると、1行取得できます。追加のトピックごとに追加の行が必要な場合は、JOIN を使用できます。

于 2010-08-03T08:07:17.717 に答える
0

サブクエリを列として使用しているため、単一の行を返す必要があります。LIMIT 0,1 を追加できます

于 2010-08-03T08:07:35.220 に答える
0

サブクエリでは、トピックの複数の行が返されるためです。

また、選択部分のサブクエリでは、そのようなケースは許可されません

カテゴリのユーザーに対して複数のトピック行が予想される場合は、JOINSを使用します。

于 2010-08-03T08:08:57.650 に答える
0

2つのテーブルを結合する必要があります

SELECT name.name, name.cat_id, category.topic
FROM name, category
WHERE name.cat_id = category.cat
于 2010-08-03T08:15:24.970 に答える
0

ネストされた選択クエリが複数を返す場合、SELECT TOP 1 topic from category... と言うと、最初の結果のみを取得できます。

于 2010-08-03T08:16:34.967 に答える