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

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

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

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

Q&A

3回答

2204閲覧

SQLの結合についてコードの意味を教えていただきたいです

koto12

総合スコア7

SQL

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

0グッド

0クリップ

投稿2016/06/19 13:52

編集2016/06/19 13:54

開発初心者です。
現在SQLの勉強をしています。

テーブル結合について勉強しているのですが、
以下のコードの意味を教えていただきたいです。

自分の理解を//に続く文で書きました。

SQL

1SELECT a.c_num 2 //accept_order表aにあるc_numを表示させる 3 FROM accept_order a, accept_order b 4 //同一のテーブルを2つ用意し、aとbという仮の名前をつける。 5 //この2つのテーブルから条件に合う列を抜き出す 6 WHERE b.c_num = '1007' 7 //bのテーブルにあるc_numの列から"1007"を探す 8 AND a.p_num = b.p_num 9 //さらに、そのbテーブルのc_numが"1007"であるもののp_numと同じaのテーブルにあるp_numを探す 10 AND a.c_num <> b.c_num ; 11 //質問②:この文章の意味が分かりません。<>は何でしょうか。 12```コード 13 14質問①上記の理解は正しいでしょうか。 15質問②AND a.c_num <> b.c_num ;の意味を教えてください。 16 17 18以上、ご回答宜しくお願い致します。

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

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

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

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

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

guest

回答3

0

この SQL 文は何ですか?
全く意味がないと思いますが。
もっとオーソドックスなところから始めたらいいと思います。

とりあえず「<>」は「=」の反対で、等しくないという意味です。

投稿2016/06/19 13:59

Zuishin

総合スコア28660

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

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

koto12

2016/06/19 14:02

ご回答ありがとうございます。 このSQL文は課題の解答です。 これを理解する必要があるのですが、自分では分からなかったため質問しました。
Zuishin

2016/06/19 14:21

「select a.c_num from accept_order a, accept_order b」 は、accept_order を内部結合したものから条件式に合う行を抽出し、その中から「a.c_num」フィールドの値を出力せよという意味です。 where 以降の「b_cnum='1007' and a.p_num=b.p=num and a.c_num<>b.c_num」が条件式です。 無料のデータベースも多くありますから、それをインストールして遊んで見たらどうでしょうか?
guest

0

課題とのことなので、問題も掲載していただけるとコメントしやすいかと思いますよ。

SQLから問題を想像すると、以下のような感じでしょうか?

「Q.accept_orderから同一のp_numグループでc_num='1007'が含まれるc_numを抽出しなさい。」

<accept_orderテーブル>

p_num c_num


0000 1001
0000 1002
0001 1003
0001 1005
0002 1006 ←★
0002 1007
0003 1007
0003 1008 ←★
0003 1009 ←★

求めるべきは★マークのついたc_numの一覧ですか?

投稿2016/06/20 03:19

Yuna.S

総合スコア81

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

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

0

こんにちは、私もSQL勉強中です。元々の質問への回答ではありませんが、
SQL Fiddleというサイトはご存知でしょうか?

左側のパネルにCREATE TABLEとかINSERT INTO文を書いて、
右側のパネルにSELECT文を書くと、下にSQL処理結果が表示されます。
エンジンもMySQLとかPostgreSQLとかいろいろと選べるので、ちょっと試したい時に便利ですよ。
また、作成したSQL文はこんな感じでURL経由で他の人と共有することもできます。

投稿2016/06/19 15:14

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問