お世話になってます
MySQLでデータを格納しております。
以下のようにUserTable,Userinfoという2つのテーブルがあったとします。
■UserTable
-ID(key)
-username
■Userinfo
-ID(key)
-user_info1
-user_info2
UserTableはユーザID作成時に自動でレコードが生成されます。
登録されたユーザは自分の情報を自分自身で登録することにより
Userinfoテーブルにレコードが生成されます。
ここで、ユーザIDを作成したユーザのうち、自分の情報を登録していない
ユーザIDを抽出したいのですが、この場合、どのようなSQLを書けばよいのでしょうか・・・?
ユーザIDが、UserTableにあって、UserInfoにない、というものを作ればよいのですが・・・
SQLだけじゃ無理でしょうか・・・?
No.1ベストアンサー
- 回答日時:
最近これと同じ質問が多いですが、はやっているのでしょうか?
SELECT UT.ID
FROM UserTable AS UT
LEFT JOIN Userinfo IS UI USING(ID)
WHERE UI.ID IS NULL
ありがとうございました。
ただレンタルサーバ(さくら)のMysqlが4.0.2.Xで、
サブクエリに対応していないようなのです。
何度やってもSyntaxErrorがでるので調べてみたら、
4.1からのようですね・・・
left join で無事できました!ありがとうございました!
No.2
- 回答日時:
MySQLのバージョンやEXPLAINの結果を見て、以下のような方法を使います。
(1)not existsを使う
select `ID` from UserTable as x
where not exists
(select * from Userinfo as y where x.`ID`=y.`ID`)
(2)not inを使う
select `ID` from UserTable
where `ID` not in(select `ID` from Userinfo)
(3)outer joinを使う
select x.`ID` from UserTable as x left join Userinfo as y
on x.`ID`=y.`ID`
where y.`ID` is null
ありがとうございました。
ただレンタルサーバ(さくら)のMysqlが4.0.2.Xで、
サブクエリに対応していないようなのです。
何度やってもSyntaxErrorがでるので調べてみたら、
4.1からのようですね・・・
left join で無事できました!ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- MySQL SQLで日付別のIDを生成するには 3 2022/10/09 10:34
- PHP MySql PHP 2つのテーブルをJOINで結合 user_idで抽出 1 2023/01/03 14:04
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- gooブログ Blogの使い方(ブログ・ユーザ設定について) 1 2022/04/23 12:40
- Access(アクセス) テキストボックスの値をテーブルに入力したい 2 2022/06/28 12:08
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
こちらのテーブルにあってこち...
-
フラグをたてるってどういうこ...
-
【SQL】他テーブルに含まれる値...
-
sqlに記述できない文字
-
エラーを起こす方法
-
Accessで今日から5日後
-
ACCESSにおいてスキーマとは
-
テーブル名が可変の場合のクエ...
-
SELECT INTOで一度に複数の変数...
-
truncate tableを使って複数の...
-
timestampのデータはどのように...
-
テーブル定義書(Oracle) 【IX】...
-
UPDATEで既存のレコードに文字...
-
SQL*LOADER実行時のロードデー...
-
既存データをINSERT文にして出...
-
SQLでつまづいてます。
-
次の時間帯の勝率の合計を求め...
-
ACCESSのVBAにてExcelに行...
-
SELECTした結果に行番号を求めたい
-
SELECTした結果をSELECTしたい!
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
1つのSQLで2段階の抽出を行い...
-
【SQL】項目に紐づいている情報...
-
複数の値を1レコードに表示した...
-
limit offset はupdate文には使...
-
SQLでレコード間の値の交換
-
SQLで、過去で一番大きい日付の...
-
SQLのinの使い方
-
SQL文の書き方
-
AccessVBAについて テーブルの...
-
2つフィールドを連結して検索す...
-
MySQL(4.1)でのサブクエリ...
-
抽出結果にレコードNoを付与す...
-
mysqlのindexとprimary keyにつ...
-
ACCESS サブフォームについて
-
【SQL】他テーブルに含まれる値...
-
SELECT INTOで一度に複数の変数...
-
フラグをたてるってどういうこ...
-
sqlに記述できない文字
-
Accessで今日から5日後
-
UPDATEで既存のレコードに文字...
おすすめ情報