求大神, mysql 根据条件用不同字段连表问题

2016-06-27 11:29:21 +08:00
 chggg
, order 表有 drug_provider_id , provider_id , order_type 字段,当 order_type=3 , provider_id 取 drug_provider_id ,否则取 provider_id 。 provider 表有 id 字段,
我要用字段
if(t1.order_type = 3 ,t1.drug_provider_id,t1.provider_id) as provider_id 去左连 provider 表的 ID 字段具体语句怎么写
2319 次点击
所在节点    PHP
2 条回复
chggg
2016-06-27 11:42:03 +08:00
应该是 order 表是主表, provider 表要去左连 order 表,还有其它表要左连 order 表
txoooy
2016-06-27 13:31:58 +08:00
用 union 吧, 举个例子:

"""
SELECT
o.id AS order_id,
p. NAME AS provider_name
FROM
test.order o
INNER JOIN test.provider p ON o.order_type = 3
AND o.provider_Id = p.id

UNION

SELECT
o.id AS order_id,
p. NAME AS provider_name
FROM
test.order o
INNER JOIN test.drug_provider p ON o.order_type != 3
AND o.drug_provider_id = p.id
"""

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/288551

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX