![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
mysqlとperlを勉強中です
2つのテーブルから同じIDの情報を取得したいです。
hoge1テーブルとhoge2テーブルのIDは共通で一致しています。
(実際にはフィールドはもっと多いですがわかりやすくしています)
hoge1テーブルは3つフィールドがあります
ID INT1 INT2
hoge2テーブルは3つフィールドがあります
ID TEXT1 TEXT2
hoge1テーブルで取得するのは数字が一致したIDです
SELECT id FROM hoge1 WHERE int1=10 or int2=10 ORDER BY id
hoge2テーブルで取得したいのはhoge1テーブルで取得したIDのTEXTです。やりたいことはこんな感じです
SELECT TEXT1,TEXT2 FROM hoge2 WHERE id=hoge1テーブルで取得したID ORDER BY id;
while (my $rec = $sth->fetchrow_array) {
push(@recs, $rec);
}
perlでは配列で取得して後で、foreachで100個ほどprintしています。
hoge2も同じように取得したいのですが、hoge2はフォームを空白で送信できるようになっているので値がなにもないときがあります
配列に入れてしまうと空白のレコードがあるとその分、配列がずれてしまいます
hoge1テーブルで取得したIDとhoge2テーブルで取得したテキストのIDを一致させる方法はありますか?
やりたいのはこうゆうことです。
テーブル1で値が一致しているIDを取得する
テーブル2でテーブル1で一致したIDのテキストを取得する
リレーションも考えましたが素人なのでピンときませんでした
テキストのほうも配列で取得して100個ほどprintしたいのです
よろしくお願いします
No.1ベストアンサー
- 回答日時:
いまいち状況がわからないのですが
不通にjoinしたり
SELECT TEXT1,TEXT2 FROM hoge2 inner join hoge1 on hoge1.ID=hoge2.ID and (`INT1`=10 or `INT2`=10);
サブクエリ使ったりしてみては?
SELECT TEXT1,TEXT2 FROM hoge2 WHERE ID in (SELECT ID FROM hoge1 WHERE `INT1`=10 or `INT2`=10)
わかりにくくてすいません
2つのテーブルは登録者の数値と、テキストを分離したテーブルです
よって、カラムの数は一致します。数値を取得したときに、それと同じカラムのテキストを取得しようとしています(テキストに値がない場合も)
テキストを配列に取得する方法ってありますか?(空の値を含めて)
数値とテキストは同じid、左から数えた順序が同じカラムです
perlで表示する時は、こんな感じで使いたいのです。テキストには空の値があります
$hoge1[0]数値 $hoge2[0]テキスト
$hoge1[1]数値 $hoge2[1]テキスト
$hoge1[2]数値 $hoge2[2](テキストに値なしの場合、空白で表示)
$hoge1[3]数値 $hoge2[3]テキスト
No.2
- 回答日時:
select * from hoge2 where id in (select id from hoge1 where int1 = int2);
これでどうでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- Oracle SQL update方法 2 2022/06/22 14:07
- MySQL 共通点はあります。何が違うのでしょうか? 1 2023/01/27 05:22
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Oracle sqlで質問です。 idを元にidに紐付くデータで住所コードがjpのみのデータ以外のidを取得したい 4 2023/03/20 17:41
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一つ前のレコードの値と減算し...
-
selectした大量データをinsert...
-
副問合せの書き方について
-
Yahoo .comの idには年齢制限、...
-
エクセルで最後の文字だけ置き...
-
マイクラPC版のコマンドで効率...
-
期間の重複を調べるSQL文につい...
-
SQL Left Join で重複を排除す...
-
同じサーバーで、異なるデータ...
-
SQLについての質問
-
貝を買って中から死にかけのカ...
-
EXPLAINのtypeがALLのときの対...
-
エラー 1068 (42000): 複数の主...
-
SQLにて特定の文字を除いた検索...
-
Mysqlでunionを使った検索速度...
-
ストアドのエラーについて
-
sqlite結果の非表示
-
インスタの名前でかっこいいと...
-
MYSQL PERL からの抽出について
-
mysqlで特定のカラムから下4桁...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
SQLサーバから、項目の属性(型...
-
副問合せの書き方について
-
VIEWの元のテーブルのindexって...
-
エクセルの関数について教えて...
-
SQLにて特定の文字を除いた検索...
-
マイクラPC版のコマンドで効率...
-
select文のwhere句に配列を入れ...
-
sqlで、600行あるテーブルを100...
-
ある条件の最大値+1を初番する...
-
inner joinをすると数がおかし...
-
Unionした最後にGROUP BYを追加...
-
期間の重複を調べるSQL文につい...
-
クエリ表示と、ADOで抽出したレ...
-
Access パラメータクエリをcsv...
-
PL/SQLの変数について
-
MySQLのDATE型カラム値がNULLの...
-
php+mysqlで複数選択削除について
-
上位3位を求めるSQL文は?
おすすめ情報