お世話になります。
memberテーブル外貨のような構成となっており、
member_no member_id
1 sakuma
2 oosawa
3 sugiyama
4 ozawa
メンバー間のメッセージを残したメッセージテーブルが以下のような構成です。(to_member、from_memberは送信者、受信者を示すものであり、memberテーブルのmember_noを指しています)
message
message_no to_member from_member message_text
1 3 2 おはよう
2 2 3 こんにちは
3 4 3 遊びに行こう
4 6 2 公園へ行こう
5 2 3 海に行こう
6 3 4 映画は楽しかった
このメッセージテーブルを基に、2名の会話を呼び出すとします。
(例えば2 のoosawa、3 のsugiyama)
おはよう
こんにちは
海へ行こう
こんな流れをイメージしているのですが、単純にmember_textだけを表示させるのであれば、where句でto_memberとfrom_memberを指定すれば良いのですが、message_textの他に、memberテーブルにあるmember_idも併せて表示させるためにはどのようなSQL文となるのでしょうか?
SELECT message.message_no, message.to_member, message.from_member, message.message_text, member.member_no, member.member_id FROM message LEFT JOIN ON message.to_member = member.member_no LEFT JOIN member ON message.from_member = member.member_no ORDER BY message.message_no DESC
とやろうにも、当たり前でしょうが実行してみると上手く行かず、AS句を使うのかな?と思いつつも、その記述方法が分かりません。
お恥ずかしいことと思われますが、ご教示いただければ幸いです。
■追記
Orlofskyさんからのアドバイスを頂戴し、実際のテーブルをご提示します。
上記質問時にお示ししたテーブルおよびカラム名は分かり易く(説明し易く)名称を変えましたが、以下の構成が(いくつかのカラムは削除しているものの)実際のテーブル、およびカラム名です。
CREATE TABLE `mst_member2` ( `member_no` int(11) NOT NULL, `member_unit_no` int(11) NOT NULL, `member_id` varchar(255) NOT NULL, `member_mail` varchar(255) NOT NULL, `member_pass` varchar(255) NOT NULL, `member_name` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会員企業'; INSERT INTO `mst_member2` (`member_no`, `member_id`, `member_name`) VALUES (1, 'daihyo', '相原'), (2, 'taxa', '佐久間'), (5, 'fish', '大澤'), (6, 'kappa', '小澤'), (7, 'maimai', '椙山'); CREATE TABLE `b2b_item_transaction_navi2` ( `navi_no` int(11) NOT NULL, `navi_item_no` int(11) NOT NULL, `navi_to_member_no` int(11) NOT NULL, `navi_from_member_no` int(11) NOT NULL, `navi_date` datetime NOT NULL, `navi_exp` text NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `b2b_item_transaction_navi2` (`navi_no`, `navi_item_no`, `navi_to_member_no`, `navi_from_member_no`, `navi_date`, `navi_exp`) VALUES (1, 7, 1, 6, '2018-10-31 00:30:48', '連絡がありました'), (2, 12, 2, 6, '2018-11-01 21:34:34', '連絡がありました'), (3, 7, 6, 1, '2018-11-03 19:35:35', 'あいうえお'), (4, 7, 6, 1, '2018-11-03 19:49:42', '待っててね\r\n\r\nよろしく'), (5, 7, 1, 6, '2018-11-04 03:00:21', '待ってまーす\r\n\r\nでも、極力早くにしてよね。ヨロシク'), (6, 7, 1, 6, '2018-11-04 03:28:13', '待ってまーす\r\nでも、極力早くにしてよね。ヨロシク');
上記をb2b_item_transaction_navi2テーブルにおいて、navi_item_noを7と指定したとき、navi_expを一覧表示させる際、navi_to_member_no, navi_from_member_noそれぞれのmember_idを表示させたいと考えています。
待ってまーすでも、極力早くにしてよね。ヨロシク 待ってまーすでも、極力早くにしてよね。ヨロシク 待っててねよろしく あいうえお 連絡がありました
回答1件
あなたの回答
tips
プレビュー