2016-08-22 40 views
0

我想在一个表MySQL或条件不工作

我的表结构来搜索数据表:tbl_clientinfo_dplist

dplist_id dp_id  dplist 
------------------------------- 
1    1  aaa 
2    1  bbb 
3    1  ccc 
4    1  ddd 
5    2  eee 
6    2  fff 
7    2  ggg 

我的另一个表结构表:tbl_client

client_id  provider_type  group_name  cmp_legal_name 
--------------------------------------------------------------- 
    1    1     5     Test1 
    2    2     6     Test2 
    3    3     7     Test3 
    4    1     5     Test4 
    5    4     6     Test5 

dp_id = 1是提供者类型,dp_id = 2是组名。

如何从表中搜索提供程序类型或组名?

这是我当前的查询

SELECT * 
FROM tbl_client 
LEFT JOIN tbl_clientinfo_dplist 
    ON (tbl_client.provider_type = tbl_clientinfo_dplist.dplist_id) 
     OR (tbl_client.group_name = tbl_clientinfo_dplist.dplist_id) 
+1

的http://计算器。 com/questions/11702294/mysql-inner-join-with-or-condition – user3741598

+1

它有点混乱,因为你在这里有什么问题? – Rahul

+0

考虑提供适当的CREATE和INSERT语句以及所需的结果。 – Strawberry

回答

1

仅供参考,以上可以如下重写,我认为这是更容易阅读...

SELECT columns, I, actually, need 
    FROM tbl_client c 
    LEFT 
    JOIN tbl_clientinfo_dplist l 
    ON l.dplist_id IN(c.provider_type,c.group_name) 
+0

它返回行的重复 – smijith

+0

'SELECT列,其实我需要 FROM tbl_client c',你的意思是(实际上,需要)。 tbl_client字段的列和tbl_clientinfo_dplist的I列 – smijith