- ベストアンサー
SQL文の書き方(こんなこと出来ますか)
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
A、B、a、bがいろんな意味に使われていて説明が上手く出来ていません。 もう少し具体例を挙げてもらう方がよいかもしれません。 リレーション条件をはっきりすればleft joinで処理するような気はしますが・・・
関連するQ&A
- sqlのJoinでこんなこと出来ますか、
sqlのJoinでこんなこと出来ますか、 当方初心者につき宜しく御願いします。 テーブルAにはIDがありIDはユニークです。テーブルBにはIDと項目がありIDは複数件存在します。項目には「あ」又は「い」、「う」、「え」、「を」が入っています。idに対して「あ」だけの時もあれば、「い」、と「う」が存在する時もあります。1件または複数件存在します。 条件に「あ」を抽出するようにして、「あ」がないときは存在するがテーブルBには存在するという結果を作りたいのです。 ID=1、あ ID=2、NULL という結果を作りたいのです。テーブルの双方に存在して、かつ「あ」であれば「あ」以外はNULLのレコードを作りたいのです。 説明が悪くて申し訳ありませんが宜しく御願い致します。
- ベストアンサー
- MySQL
- SQL文で教えてください
Left join と Right join の両方の機能をもった、一つのSQL文はどうしたらいいのでしょうか。 つまり、Left join は左側のテーブルを基準とし右にないものでも右の部分はNUllのままで抽出しますが、双方にあるものは統合して出力し、片方に無いものは、ない部分だけNullで、とにかく両方を抽出するというSQL文が書けないかと思案しています。
- 締切済み
- PostgreSQL
- SQL文の構築について教えてください。
SQL文の構築について教えてください。 こんばんは。Oracle9iのデータベース検索で、どうしてもSQLが思い浮かばないため、質問させていただきます。 ■Table ID NUM SIGN 100 1 A 100 2 A 101 1 A 102 1 B 103 1 B 104 1 C 首キーはID、NUMです。 上記のようなテーブルで、 IDが同一かつNUMが最大のもので、 SIGNが同一のレコードで、2件以外のレコードを抽出したいです。 (例表でいうと、ID104のレコードのみが抽出されるようにしたい) すこし急ぎなんですが、SQLが得意でお時間がある方、力を貸していただけないでしょうか。 よろしくお願い致します。
- ベストアンサー
- Oracle
- 条件をつけてレコードを取得したい
以下のようなA,Bテーブルから条件を指定してレコードを取得したい 【Aテーブル】 ID Bテーブル番号 0001 null 0002 null 0003 null 【Bテーブル】 シーケンス番号 ID 登録日 処理済みフラグ 0010 0001 2014/01/01 0 0011 0001 2014/01/02 1 0012 0001 2014/01/03 0 <結果> 【Aテーブル】 ID Bテーブル番号 0001 0001 0002 null 0003 null 条件としては以下の条件です。 (1)Aテーブルは全レコード出力する (2)BテーブルのAテーブルシーケンス番号が複数存在する場合、登録日が一番古いレコードを抽出する (3)Bテーブルの処理済みフラグが0のレコード以外はnullとする。 自分で抽出条件を作成したのですが、Aテーブルの0001分しか上手く抽出出来ませんでした。 SELECT * FROM Aテーブル AT (SELECT シーケンス番号, MIN(登録日) AS 登録日 FROM Bテーブル GROUP BY AテーブルID) BT1, (SELECT * FROM Bテーブル) BT2 WHERE AT.ID = BT1.ID AND BT1.登録日 = BT2.登録日 AND BT1.ID = BT2.ID AND BT2.処理済みフラグ = '0' 一度上の命令文でテーブルを作って元のテーブルとマッチングさせるしかないのでしょうか?出来れば一発で抜き出したいです。 ご教授宜しくお願いします。
- ベストアンサー
- Oracle
- 複雑な抽出条件のSQL文
まだまだ初心者ですがよろしくお願いします。 以下の条件でDBからデータを抽出したい場合のSQLを 教えていただきたいです。 ・テーブルAがありカラムがA、Bとある。 ・Aは重複できないようになっているがBは重複可。 ・Bが重複しているレコードのAの値が欲しい。 環境はSQLServer2000+VB6.0です 情報が足りないかも知れませんがよろしくお願いいたします。
- ベストアンサー
- SQL Server
- 以下のSQLについて
AccessMDBで、以下のテーブルがあったとします。 テーブル1 ID,NAME 1,おなまえ 2,名前 3,なまえ テーブル2 ID,DB1_ID,NAME,開始日,終了日 1,1,4月,2006/4/1,2006/4/30 2,1,6月,2006/6/1,2006/6/30 3,2,2006年度,2006/4/1,2007/3/31 このとき、以下のように出力したいのですが ID(オートナンバーと仮定),NAME,月,開始日,終了日 1,おなまえ,4月,2006/4/1,2006/4/30 2,おなまえ,6月,2006/6/1,2006/6/30 3,おなまえ,(null),(null),(null) 4,名前,2006年度,2006/4/1,2007/3/31 5,名前,(null),(null),(null) 6,なまえ,(null),(null),(null) 試しにクェリーを作ってみた所、(null)の値を手入力しなければいけないのですが nullをいれさせるようにするには、どのようにしないといけないでしょうか? #テーブルをいじることはできず、SQLのみで対処することを考えています。 SELECT テーブル1.NAME, テーブル2.NAME, テーブル2.START, テーブル2.END FROM テーブル1 LEFT JOIN テーブル2 ON テーブル1.ID=テーブル2.DB1_ID UNION SELECT テーブル1.NAME, テーブル2.NAME,テーブル2.START,テーブル2.END FROM テーブル1; よろしくお願いします。
- ベストアンサー
- その他(データベース)
- 賢いSQL文がわからない
お世話になります。 メインテーブルAと詳細テーブルBがあります。 テーブルA(ID・名前) テーブルB(ID・テーブルAのID・区分・内容) テーブルA:テーブルBは、1:Nの関係です。 またテーブルBがないものもあります。 名前あるいは名前と内容で検索をしたいのですが、 どのようにかけばいいのでしょうか? テーブルAの形で結果がほしいのですが。 よろしくお願いします。
- ベストアンサー
- PostgreSQL
- mysqlのSQL文の書き方について
mysqlでA,Bのテーブルがあるとします。 A ID1 りんご ID3 みかん ID4 ぶどう B ID2 メロン ID3 みかん ID4 ぶどう この二枚のテーブルでどちらかのテーブルに存在すればヒットする ようなselec文はどう書いたらいいのでしょうか。重複する行は、 一行のみ抜き出したいです。 こういうかんじにです。 ID1 りんご ID2 メロン ID3 みかん ID4 ぶどう よろしくお願いします。
- ベストアンサー
- その他(データベース)
- SQL文
SQLの初心者です。 Aテーブル(a項目,b項目,c項目)とBテーブル(a項目,d項目,e項目)のテーブルがあります。 d項目順でAテーブルの項目のみ出力するにはどうしたらいいのでしょうか。 例えば次のSQL文ではd項目順で出力されますが結合の為、AテーブルとBテーブルの全項目が出力されます。 SELECT * FROM Aテーブル LEFT OUTER JOIN DITKM ON Aテーブル.a項目 = Bテーブル.a項目 ORDER BY Bテーブル.d項目 次のSQL文のようにAテーブルの項目を選択したらAテーブルの項目のみ出力する事はわかります。 SELECT a項目,b項目,c項目 FROM Aテーブル LEFT OUTER JOIN DITKM ON Aテーブル.a項目 = Bテーブル.a項目 ORDER BY Bテーブル.d項目 今回はAテーブルの項目数が少ないのでこれでもいいのですが、項目数が多くなると大変です。 上の様に項目を選択しないでAテーブルの項目を全て出力する事は可能なのでしょうか。 宜しくお願い致します。
- ベストアンサー
- Oracle
- このSQL文を教えてください。
Windows2000(SP3) SQLServer2000(SP3) で開発しています。 テーブルA 項目No,大分類コード,中分類コード,詳細コード,日付,内容 テーブルB 大分類コード,中分類コード,詳細コード,新_詳細コード,内容 TableA,Bでは大分類コード,中分類コード,詳細コードがリンクする このような状況で、TableA,Bを下記のようにjoinして、 TableA.大分類コード, TableA.中分類コード, TableB.新_詳細コード, が重複するデータを取得する場合のSQL文を教えてください。 (join) SELECT TableA.*, TableB.* FROM TableA LEFT OUTER JOIN TableB ON TableA.大分類コード=TableB.大分類コード AND TableA.中分類コード=TableB.中分類コード AND TableA.詳細コード=TableB.詳細コード よろしくお願いします。
- 締切済み
- その他(データベース)
お礼
ありがとうございました。