
次のSQL文を実行します。
create table1 (id, english)
insert table1 (1,"foo")
insert table1 (2,"bar")
create table2 (id, japanese)
insert table2 (1, "ふー")
insert table2 (2, "ばー")
SQL文法としては誤ってますが、成功したとします。
いま、select id from table1 where english = 'foo';
で1が得られます。
いま、select japanese from table2 where id = 1;
で"ふー"が得られます。
これを一つのSQLite3のselect文で実現できないでしょうか。
select japanese from table2 where id = (select id from table1 where english = 'foo');
で良いですか?
カテゴリ選択にSQLiteが無いのは、人気が無いからですかね。
No.2ベストアンサー
- 回答日時:
>select japanese from table2 where id = (select id from table1 where english = 'foo');
englishがユニークでない場合
select id from table1 where english = 'foo'
で得たidは1つとは限りません。
上記で2つ以上のidが返ってきたときid=・・・は文法的にエラーになります。
どうしてもサブクエリでやりたいならinをつかうことになるでしょう
(SQLiteに該当する文法があるなら)
select japanese from table2 where id in (select id from table1 where english = 'foo');
#1さんのSQL文で問題ありませんが、
ロジック的には絞ったtable1からtable2の値を得たいので
select japanese from table1 inner join table2 on table1.id = table2.id and english = 'foo';
の方が、より直観的かもしれませんね。
ちなみにMySQLでテストする限り適切なインデックスさえ貼ってあれば、
効率は変わらないみたいです。
みなさん、返答有り難うございます
よく分かりました
現在、データ登録中(もう、三回失敗していますが...)です。成功したら試してみます。
今後もおねがいします
No.1
- 回答日時:
サブクエリを使うその方法でもいいですが、
一般的には結合(join)を使うし、その方が高速な場合が多いと思います。
select japanese from table1 inner join table2 on table1.id = table2.id where english = 'foo';
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Oracle SQL update方法 2 2022/06/22 14:07
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 日本の全市区町村を人口密度が低 1 2023/06/18 19:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データベースファイル(.db)を開...
-
googleフォームでインストール...
-
最新の日付とその金額をクエリ...
-
20万行あるデータを動かしたい
-
ACCESSのSQLで、NULLかNULLでな...
-
データベースの選定について 要...
-
Accessのリンクテーブルについて
-
Accessフォームからパラメータ...
-
テキストボックスにコントロー...
-
AccessのSQLで、FROM句の構文エ...
-
警察はスマホに保存した動画や...
-
至急 Excelの連動
-
更新クエリをリンクデータベー...
-
Excel VBA 転記について
-
Access Nz関数の合計値の小数点...
-
Accessを開きなおすとテキスト...
-
データベースとウェブ(WWW)の共...
-
DocuWorksでの印刷
-
CSVファイルでテキストの改行の...
-
抽出条件でデータが一致しませ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL任意に並び替えをしたい
-
異なるデータベース間のリレー...
-
SELECT文の二段重ね
-
VIEWに対してWHERE句をつける
-
Null値が入れられない
-
空白文字を含む文字列データの検索
-
nullと同じく空白をCountしない...
-
NULLを含む列の足し算
-
SQLでLIMIT句を入れるとエラー...
-
MySQLの特定のカラムの内容を全...
-
JOIN使ってないのに、JOIN操作...
-
複数のカラムを対象にしたプラ...
-
SQL文を入力したらエラー
-
MySQLでのテーブル名取得に制限...
-
whereについて
-
コマンドプロンプト 複数の実...
-
MySQL + PHP での自動採番
-
SQLのコマンドでif構文
-
コマンドプロンプト 実行結果...
-
sqlの中で、 例えば条件句で AN...
おすすめ情報