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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

4287閲覧

MYSQLのJOINでNULLの行が取得できません

natlpush

総合スコア32

SQL

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/12/19 08:01

MySQLで、下のようなテーブル A,BをJOINします

テーブルA +-------+-------+ | ID | member| +-------+-------+ | 1 | 太郎 | | 2 | 次郎 | | 3 | 三郎 | +-------+-------+ テーブルB +-------+-------+ | ID | cat | +-------+-------+ | 1 | 長男 | | 2 | 次男 | +-------+-------+

求める結果は下です

+-------+-------+-------+ | ID | member| cat | +-------+-------+-------+ | 1 | 太郎 | 長男 | | 2 | 次郎 | 次男 | | 3 | 三郎 | NULL | +-------+-------+-------+

下のようなSQL文でいいとは思うのですが、

SELECT A.ID,member,cat FROM A LEFT JOIN B ON A.ID=B.ID

結果が下のようになってしまいます。

+-------+-------+-------+ | ID | member| cat | +-------+-------+-------+ | 1 | 太郎 |長男 | | 2 | 次郎 |次男 | +-------+-------+-------+

解決方法をお知りの方、お力添えよろしくお願いいたします。

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

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

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

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

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

guest

回答3

0

MySQL で実際に構築してみたけど問題無いですねえ…

SQL

1create table testA (id int(11) not null default 1, member varchar(10)); 2create table testB (id int(11) not null default 1, cat varchar(10)); 3insert into testA values(1, 'Taro'); 4insert into testA values(2, 'Jiro'); 5insert into testA values(3, 'Saburo'); 6insert into testB values(1, '1st'); 7insert into testB values(2, '2nd');

とした上で、

SQL

1select testA.id, testA.member, testB.cat FROM testA LEFT JOIN testB ON (testA.id = testB.id);

で、

pre

1+----+--------+-------+ 2| id | member | cat | 3+----+--------+-------+ 4| 1 | Taro | 1st | 5| 2 | Jiro | 2nd | 6| 3 | Saburo | (null)| 7+----+--------+-------+

になりますから。

投稿2016/12/19 08:26

tacsheaven

総合スコア13703

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

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

0

自己解決

単なる操作ミスでした。
テーブルの値が消えていたようです。
申し訳ありませんでした。

投稿2016/12/19 08:21

natlpush

総合スコア32

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

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

0

SQL文はあっていると思いますが、ちなみに以下だとどうなりますか?

SQL

1SELECT * FROM A LEFT JOIN B ON A.ID=B.ID;

投稿2016/12/19 08:06

yambejp

総合スコア114581

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

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

natlpush

2016/12/19 08:13

ID member ID cat で、同じく2行です
natlpush

2016/12/19 08:19

大変申し訳ありません。 こちらの操作ミスでした。 解決いたしました。 ご迷惑をおかけしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問