実行したい内容は、『同一ナンバー内で1番IDが低いコードNOが2のタイトルを出す』といった内容になります。
以下のように書いて実行したところ、『EXISTSを使わないサブクエリでは、サブクエリの選択リストには、式を1つだけしか使えません。と表示されました。』自身のSQL文に問題があるかもしれませんが、現状は下記のSQL文となっています。
"SELECT id, code, num, title FROM contents WHERE code=2 AND id IN (SELECT MIN(id), num FROM contents GROUP BY num)"
副問合せで、同一ナンバーで1番IDが低いIDを取得し、取得したIDをもとに
タイトルを出そうとしました。
どなたか御指導御願い願えませんでしょうか。
宜しく御願いいたします。
No.1ベストアンサー
- 回答日時:
まず、
IN句を使う場合、フィールドは1つしか指定できません。
例:
IN (SELECT MIN(id) FROM ...)
次に、
現状のSQL文では、「同一ナンバー内で1番IDが低いidをもつ」が満たせません。
numでの絞り込みがcontentsテーブルに対してなされて
いないからです。
主キーが分からないので正確ではないですが、下記が例です。
【例1】
SELECT [id], code, num, title
FROM contents AS A
INNER JOIN
(
SELECT
MIN([id]) AS minid,
num
FROM contents
GROUP BY
num
) AS B ON A.[id] = B.minid AND A.num = B.num
WHERE
A.code = 2
どうしてもWHERE句で絞り込みたいときは、IN句ではなく、
EXISTS句を使います。集計関数の項目を絞り込むので
HAVING句で絞り込みます。
【例2】
SELECT [id], code, num, title
FROM contents AS A
WHERE
A.code = 2
AND EXISTS
(
SELECT
MIN([id]) AS minid,
num
FROM contents
GROUP BY
num
HAVING
MIN([id]) = A.[id]
AND num = A.num
)
例1、例2のSQL文でやり方はあっていますので、
思った結果が得られない場合は、
調整してみて下さい。
No.2
- 回答日時:
IN ではなくて ANY を使うといいのでは?
SELECT id, code, num, title FROM contents WHERE code=2 AND id = ANY (SELECT MIN(id), num FROM contents GROUP BY num)
これだとINとほぼ同じ意味になるはずです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
型 varchar から型 numeric への変換エラー。
その他(データベース)
-
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
GROUP BYを行った後に結合したい。
Oracle
-
-
4
オラクルではできるのにSQLSERVERではサブクエリーで複数キーを指定できない?
SQL Server
-
5
データベースのINT型項目にNULLはNG?
MySQL
-
6
【SQL】他テーブルに含まれる値に合致する行を抽出
その他(データベース)
-
7
SQLのエラー(~付近に不適切な構文があります)
SQL Server
-
8
SQLServerでNULLを挿入したいです
SQL Server
-
9
共通モジュールでDBへの接続と利用方法
Visual Basic(VBA)
-
10
複数のテーブルから値を合計出力するSQLについて
MySQL
-
11
GROUP BYでエラーが発生
SQL Server
-
12
SQL文で右から1文字だけ削除するやり方
MySQL
-
13
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
14
他のデータベースとのテーブル結合
SQL Server
-
15
SUBSTRING 関数に渡した長さのパラメータが無効です。
SQL Server
-
16
MAX関数を使ってからLEFT JOINしたいのですが・・
PHP
-
17
2つのテーブルから条件に一致しないデータ抽出
SQL Server
-
18
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
19
SQL文で素早くNULLを除外する方法
SQL Server
-
20
SQLServer2005のSQL文での別名の取り扱い
SQL Server
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マイクラPC版のコマンドで効率...
-
【初心者】特定の文字に色をつ...
-
green houseのGH-YMP24-GD...
-
T-SQLの sp_executesql について
-
エクセルで最後の文字だけ置き...
-
別テーブルからSELECTした値を...
-
おすすめのアクセスアップマニ...
-
UPDATE my_items SET item_name...
-
ストアド内でカラム名一覧を取得
-
論文投稿用figure作成
-
書籍の内容はまともでしょうか?
-
【MySQL】本当に困っているので...
-
URL と行番号の指定
-
共通点はあります。何が違うの...
-
Excel2000でレーダーチャートの...
-
LEFT JOIN と GROUP BY
-
【MySQL】本当に困っています。...
-
親と子供が複数のSQL取得方法
-
my_itemsテーブルのIDにAUTO_IN...
-
SELECT my_items.item_name, ca...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
副問合せの書き方について
-
SQLサーバから、項目の属性(型...
-
VIEWの元のテーブルのindexって...
-
select文のwhere句に配列を入れ...
-
selectした大量データをinsert...
-
センノシド異性体構造式
-
Unionした最後にGROUP BYを追加...
-
insertを高速化させたい
-
SQLにて特定の文字を除いた検索...
-
ある条件の最大値+1を初番する...
-
マイクラPC版のコマンドで効率...
-
inner joinをすると数がおかし...
-
sqlで、600行あるテーブルを100...
-
エクセルの関数について教えて...
-
Access パラメータクエリをcsv...
-
URL と行番号の指定
-
複数テーブルのGROUP BY の使い...
-
PL/SQLの変数について
おすすめ情報