2017-08-08 9 views
0

を含む2つのテーブルから選択します最初のテーブルのIDは、MySQLは、私は2つのテーブルを有する1つの列が2つの変数

私はこの2つのテーブル間の結合だけ、私は最初の名前を受け取る

select 
marketing.*, 
ccompany.db_cname 
from tbl_marketing as marketing 
left join tbl_ccompany as ccompany 
on 
marketing.db_ccompany=ccompany.db_id 

どのようにすることができ、私は左を試しアウトプットは、この

1 ggg xxx,yyy 

ようになる を印刷するdb_cnameを選択したいですテーブルに参加し、私が望む出力を持っていますか?

+0

は、あなたがこれまで持っているので、私たちはより良いあなたが間違っているものを識別することができ、コードのいくつかを見てみましょう。 – Adam

+0

@AdamA上記をご確認ください –

+2

あなたのデータベースを再設計する必要があります。 'tbl_ccompany'と' tbl_marketing'は、同じテーブルにカンマ区切りにするのではなく、別のテーブルに関連付けるのがよいでしょう。 – money

答えて

0
SELECT db_mid,db_name,GROUP_CONCAT(db_cname) FROM tbl_marketing LEFT JOIN tbl_ccompany on db_id=db_ccompany WHERE db_ccompany in(1,2) 
+0

これは質問に答えるかもしれませんが、あなたのコマンドが何をしているのか、それがなぜ初期の問題を解決するのかを簡単に説明してください。 – user1438038

+0

Mahamadは、クエリでこの結果を望んでいる: は、だから私は「db_mid、DB_NAME、GROUP_CONCAT(db_cname)」を追加した 「私はアウトプットを印刷するdb_cnameを選択するには、この 1 GGGのXXX、YYYのようになります」 SELECTフィールドで、そして結果を取得する必要があります。 "db_ccompany in(1,2)" –

0

これが役立ちます。

データベース構造:

create table tbl_ccompany (
db_id int, 
db_cname text); 

insert into tbl_ccompany values (1,'xxx'); 
insert into tbl_ccompany values (2,'yyy'); 

create table tbl_marketing (
db_mid int , 
db_name text, 
db_ccompany text 
); 

insert into tbl_marketing values (1,'ggg','1,2'); 

問合せ:

select db_mid, db_name, group_concat(db_cname) 
from tbl_ccompany tc , tbl_marketing tm 
where find_in_set(tc.db_id,tm.db_ccompany) 

参考:http://amitbrothers.blogspot.in/2014/03/mysql-split-comma-separated-list-into.html

+0

@mohamadmohamadそれは役に立ちますか? –

関連する問題