2つのSQLの結果を結合して、viewで表示したいです。
>3つのテーブルをjoinなどして連結させるとversionに対してcount関数が使えないので
どういう結果を想定していますか?
テーブル定義をCREATE TABLEで、テーブルに存在するデータをINSERTで、希望する出力結果を提示しては?
同じSQLでもデータベースやそのバージョンによって方言が大きいですから、どのデータベースを使うのかを質問のタグで示したり、バージョンも明記した方が適切なコメントが付き易いです。
想定している結果
各companyに対して紐ずいているmemberのversionカラムに値が入っている個数を表示すること。
下の例だと2(comany.id = 1のmemberでversionに値があるのは1,3の二人なので)
テーブル定義
CREATE TABLE companies(
id INT(11) AUTO_INCREMENT NOT NULL,
master_member_id INT(11),
name VARCHAR(30) NOT NULL ,
address VARCHAR(30) NOT NULL,
PRIMARY KEY (id));
CREATE TABLE members(
id INT(11) AUTO_INCREMENT NOT NULL,
company_id INT(11) NOT NULL ,
name VARCHAR(30) NOT NULL,
email VARCHAR(30) NOT NULL
PRIMARY KEY (id));
CREATE TABLE member_details(
member_id INT(11) AUTO_INCREMENT NOT NULL,
version INT(11) NOT NULL ,
PRIMARY KEY (id));
テーブルに存在するデータ
insert into companies (id, master_member_id, name, address) values (1, 1,'google', tokyo);
insert into members (id, company_id, name, email) values (1, 1, 'yuki', test@test.com);
insert into members (id, company_id, name, email) values (2, 1, 'aki', test2@test.com);
insert into members (id, company_id, name, email) values (3, 1, 'koko', test3@test.com);
insert into member_details (member_id, version) values (1, 3.5);
insert into member_details (member_id, version) values (2, nil);
insert into member_details (member_id, version) values (3, 3.5);
データベース:mysql
バージョン: 5.7.27
アドバイスありがとうございます!
テーブル構造、データなどは上記のような状態です。
ここを読んでくれる人は少ないので質問を修正してください。
SQLでは文字列はシングルクォートで囲まなければなりません。
values の中の tokyo や メルアドはシングルクォートで囲んでください。
>最終的にcompanyに紐ずいているmemberのversionに値が入ってる個数を表示したいので、joinすると作成したオブジェクトに対して、version.countが使えないです。
こういう結果が欲しいという内容も質問のinsertの下で良いから追加してください。