- 締切済み
SQL文について
SQL文について 現在一度に検索ができずに困っているため質問します。 データベースに男性テーブルと女性テーブルがあります。 男性テーブル ・番号 ・名前 女性テーブル ・番号 ・名前 このテーブルより自分の父、母、母の父を表示させたいのですが SELECT 男性テーブル.名前, 女性テーブル.名前, (※母の父を表示させたい) FROM 男性テーブル, 女性テーブル WHERE 男性テーブル.番号=父の番号 AND 女性テーブル.番号=母の番号 このあと条件に (AND 男性テーブル.番号=母の父の番号) をつけることはできないためSQL文の書き方で困っています。 抽出データは複数なので※の部分にサブクエリを書くことができません。 何かよいSQLの書き方はありますでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- root139
- ベストアンサー率60% (488/809)
テーブルに別名を付ければ良いのでは? 例) -------------------------------------------- SELECT t1.名前, t2.名前, t3.名前 FROM 男性テーブル t1, 女性テーブル t2, 男性テーブル t3 WHERE t1.番号=父の番号 AND t2.番号=母の番号 AND t3.番号=母の父の番号 ------------------------------------------------
- angband
- ベストアンサー率51% (86/168)
一番シンプルなのは3つのselectに分けることだと思いますけど・・ どうしても一回でということであれば union を使えばできるかもしれませんが、これはdbmsによりますね。 SELECT 名前 FROM 男性テーブル WHERE 番号=父の番号 OR 番号=母の父の番号 UNION SELECT 名前 FROM 女性テーブル WHERE 番号=母の番号 これだと一回でいけると思います。
お礼
ありがとうございます。UNIONを使って一度試してみます