質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

3回答

2294閲覧

SQL 全く異なる結果を結合

退会済みユーザー

退会済みユーザー

総合スコア0

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

1グッド

0クリップ

投稿2020/01/29 01:41

SQLの結果を結合したいのですが、方法が分かりません。

参照するテーブルや、結果のcolumn数など
全てが異なるので、INNER JOIN や UNIONが使えません。

こういった場合、どのように結合しますか?

【SQL1】 SELECT SYSDATE - 1/144 AS "確認日時(FROM)" ,SYSDATE AS "確認日時(TO)" FROM DUAL 【SQL2】 SELECT   name AS "名前" FROM   member WHERE   memid = '2'

このような全くことなるSQLを結合し、

確認日時(FROM)、確認日時(TO)、名前
という3カラムの1レコードを取得したいです。

cmbnur👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2020/01/29 01:43

全角空白を入れるのは止めましょう。
Orlofsky

2020/01/29 01:44

CREATE TABLE MEMBER を追記してください。
退会済みユーザー

退会済みユーザー

2020/01/29 01:46

そこは問題じゃないでしょう どちらのSQLも取得できる結果は一意で考えて下さい。
Orlofsky

2020/01/29 01:53

2つのSELECTした結果をどう並べたいのかも質問に追記してください。 SQLだけでは実現できないので、PL/SQLなどの知識があると便利です。
Orlofsky

2020/01/29 01:54

質問を直す気がなければ無視します。
退会済みユーザー

退会済みユーザー

2020/01/29 01:56

実現できないんかい。 出来ないなら CREATE TABLE MEMBER を追記してください。(キリッ) とか書いてないで、最初からそう言って下さい。 多分貴方は出世できないタイプ。
guest

回答3

0

参照するテーブルや、結果のcolumn数など

全てが異なるので、INNER JOIN や UNIONが使えません。

CROSS JOINという方法があって、2つのテーブルのすべての組を返します。


JOINせずに、直接書いてしまう、ではだめでしょうか。

SELECT name AS "名前", SYSDATE - 1/144 AS "確認日時(FROM)", SYSDATE AS "確認日時(TO)" FROM   member WHERE   memid = '2'

投稿2020/01/29 01:56

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

SQL

1SELECT 2 SYSDATE - 1/144 AS '確認日時(FROM)', 3 SYSDATE AS '確認日時(TO)', 4 name AS '名前' 5FROM 6 member 7WHERE 8 memid = '2';

dual 表は、Oracle の特性で「表がないと select できない」ので関数のみを使いたい(SYSDATE)ときに使える表として用意されているものなので、他に表があるなら使う必要ないのですよ。

投稿2020/01/29 01:54

編集2020/01/29 01:55
tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/01/30 02:18

それはワンチャンある
guest

0

ベストアンサー

できないみたいなんで〆

投稿2020/01/29 01:56

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sazi

2020/01/29 02:54

こういった自己解決をされると、回答自体が誤っていると誤解される事もあり得ます。 質問に対する回答として誤っているようには思えません。 せめて、出来ないとする理由を記述して下さい。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問