• 締切済み

SQL文について

SQL文について 現在一度に検索ができずに困っているため質問します。 データベースに男性テーブルと女性テーブルがあります。 男性テーブル ・番号 ・名前 女性テーブル ・番号 ・名前 このテーブルより自分の父、母、母の父を表示させたいのですが SELECT 男性テーブル.名前, 女性テーブル.名前, (※母の父を表示させたい) FROM 男性テーブル, 女性テーブル WHERE 男性テーブル.番号=父の番号 AND 女性テーブル.番号=母の番号 このあと条件に (AND 男性テーブル.番号=母の父の番号) をつけることはできないためSQL文の書き方で困っています。 抽出データは複数なので※の部分にサブクエリを書くことができません。 何かよいSQLの書き方はありますでしょうか?

みんなの回答

  • root139
  • ベストアンサー率60% (488/809)
回答No.2

テーブルに別名を付ければ良いのでは? 例) -------------------------------------------- SELECT t1.名前, t2.名前, t3.名前 FROM 男性テーブル t1, 女性テーブル t2, 男性テーブル t3 WHERE t1.番号=父の番号 AND t2.番号=母の番号 AND t3.番号=母の父の番号 ------------------------------------------------

すると、全ての回答が全文表示されます。
  • angband
  • ベストアンサー率51% (86/168)
回答No.1

一番シンプルなのは3つのselectに分けることだと思いますけど・・ どうしても一回でということであれば union を使えばできるかもしれませんが、これはdbmsによりますね。 SELECT 名前 FROM 男性テーブル WHERE 番号=父の番号 OR 番号=母の父の番号 UNION SELECT 名前 FROM 女性テーブル WHERE 番号=母の番号 これだと一回でいけると思います。

DBBasic
質問者

お礼

ありがとうございます。UNIONを使って一度試してみます

すると、全ての回答が全文表示されます。

専門家に質問してみよう