エラーが発生する理由: サブクエリが複数の行を返す
SELECT name, cat_id,
(
SELECT topic
FROM category
WHERE cat = u.cat_id
) AS topics
FROM name u
ありがとう
エラーが発生する理由: サブクエリが複数の行を返す
SELECT name, cat_id,
(
SELECT topic
FROM category
WHERE cat = u.cat_id
) AS topics
FROM name u
ありがとう
ばかげた答えかもしれませんが、なぜ JOIN を使用しないのですか?
SELECT name.cat_id, name.name, category.topic
FROM name INNER JOIN category
ON category.cat = name.cat_id
サブクエリ:
SELECT topic
FROM category
WHERE cat = u.cat_id
複数の結果を返しています-それを単一の行に収めようとしています。
同じ猫の行が2つあるからです(カテゴリを意味すると思います)
そのカテゴリ ID のトピックが他にもあります。
はい、そうです。あなたの場合、複数の行を返します。あなたは何をしたいですか?
サブクエリの最後に LIMIT 1 を追加すると、1行取得できます。追加のトピックごとに追加の行が必要な場合は、JOIN を使用できます。
サブクエリを列として使用しているため、単一の行を返す必要があります。LIMIT 0,1 を追加できます
サブクエリでは、トピックの複数の行が返されるためです。
また、選択部分のサブクエリでは、そのようなケースは許可されません。
カテゴリのユーザーに対して複数のトピック行が予想される場合は、JOINSを使用します。
2つのテーブルを結合する必要があります
SELECT name.name, name.cat_id, category.topic
FROM name, category
WHERE name.cat_id = category.cat
ネストされた選択クエリが複数を返す場合、SELECT TOP 1 topic from category... と言うと、最初の結果のみを取得できます。