ver3.23のMySQLとPerlでデータベースを作っています。
検索方法でちょっと詰まってしまったので、
質問させていただきます。
以下のようなテーブルがあるとします。
tableA(基本名簿)
AID name sr
1 aaa 100
2 bbb 100
3 ccc 100
4 ddd 100
5 eee 100
6 fff 200
tableB(対応履歴)
BID cr
1 40
1 50
1 60
3 40
3 50
3 60
AIDはBIDに対応します。
ここでやりたいのは、
「'sr'が100であり、なおかつ'cr'が40ではない(結合後のテーブルにおいてnullである)tableAのレコードを取り出す」
ということです。
以下のような結果が理想です。
AID name cr sr
2 bbb null 100
4 ddd null 100
5 eee null 100
いろいろ試した結果、
AID name cr sr
1 aaa 40 100
2 bbb null 100
3 ccc 40 100
4 ddd null 100
5 eee null 100
このような結果が出る段階まではたどり着きました。
以下がそのコードです。
SELECT * FROM tableA as A left join tableB as B
on A.AID = B.BID and cr =40
WHERE sr = 100
order by AID
以上のような結果が出たので、
三行目に"and cr != 40"や"and cr = null"などを足してみたのですが、
結果はemptyでした。
NOT EXISTSを最初は試みたのですが、
よく読んだらバージョンが古くて使えませんでした。
混乱しすぎて何か基本的な事をおろそかにしている気もするのですが…
わかる方いらっしゃいましたらぜひご教示くださいませ。
No.1ベストアンサー
- 回答日時:
第一に3.23はサポート終了バージョンなので自己解決できないなら
使用を中止すべきです。
今回の件については普通はサブクエリを使えば出来ますが、
3.23系ということでテンポラリをつかって処理します。
またnullは等号ではなくisで判断します。
create temporary table tableC select BID from tableB WHERE cr=40;
SELECT * FROM tableA as A left join tableC as C on A.AID = C.BID WHERE sr =100 and BID is null;
ご回答ありがとうございました。
>第一に3.23はサポート終了バージョンなので自己解決できないなら
使用を中止すべきです。
まずご忠告ありがとうございます。
他でもバージョンアップした方が良い局面が何回かあったので、
諮ってみたいと思います。
>またnullは等号ではなくisで判断します。
これは迂闊でした…。
アドバイスいただいたおかげでうまくいきました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- SQL Server ACCESSで複数テーブルを結合して、リストを作る方法を教えてください。 2 2022/08/12 19:32
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL mysqlの結合について教えてください 1 2022/05/19 15:13
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- オープンソース Try Kotlinで readLine()を使うには 1 2023/03/27 21:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
#1062 - '0' は索引 'PRIMARY' ...
-
テーブル名が可変の場合のクエ...
-
SQLです。こんな感じですか?あ...
-
下記の問合せを行うクエリを、P...
-
下記の問合せを行うクエリを、P...
-
下記の問合せを行うクエリを、P...
-
mysqlがインストールされている...
-
下記の問合せを行うクエリを、P...
-
クエリを教えてください select...
-
SQL任意に並び替えをしたい
-
下記の問合せを行うクエリを、P...
-
mysqlがインストールされている...
-
東京23区を、皇居を中心とした...
-
書籍の内容はまともでしょうか?
-
MySQL NULLだけをカウントして...
-
本を見ながらPHPを勉強している...
-
うまくいきません教えてくださ...
-
「都道府県の面積の大きい順に...
-
あっってますか?うまくいきま...
-
[1000地域 × 10カテゴリー = 1...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Null値が入れられない
-
NULLを含む列の足し算
-
SQLでLIMIT句を入れるとエラー...
-
MySQLの特定のカラムの内容を全...
-
nullと同じく空白をCountしない...
-
テーブル作成時に、「`id` int(...
-
SQL文を入力したらエラー
-
phpとSQLで複数条件で検索する...
-
MySQLで関連したデータを横に並...
-
VIEWに対してWHERE句をつける
-
空白文字を含む文字列データの検索
-
後でemailに追加でPRIMARY KEY...
-
sqlの中で、 例えば条件句で AN...
-
SQL任意に並び替えをしたい
-
コマンドプロンプト 実行結果...
-
count()の結果を別の計算で使う...
-
SELECT文の二段重ね
-
JOIN使ってないのに、JOIN操作...
-
コマンドプロンプト 複数の実...
-
SQLのエイリアス
おすすめ情報