2017-08-08 70 views
0

选择我有两个表:MySQL的两个表中,其中一列含有2个变量

第一张表是tbl_ccompany

db_id db_cname 
1   xxx 
2   yyy 

第二个表tbl_marketing

db_mid db_name db_ccompany 
1  ggg  1,2 

tbl_marketing db_ccompany含有第一张表的编号为

我要选择db_cname打印 了出来放会是这样

1 ggg xxx,yyy 

我尝试左边这个两个表之间的连接,但只有我收到的第一个名字

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

哪有我加入表格并获得我想要的输出?

+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_cname打印出来放会是这样 1 GGG XXX,YYY” 所以我已经加入“db_mid,DB_NAME,GROUP_CONCAT(db_cname)”在SELECT字段中,并且我们需要获取结果WHERE“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它有帮助吗? –

相关问题