2017-08-08 58 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它有幫助嗎? –

相關問題