向数据库大佬请教一个联合查询问题
三个表分别是strategy,group,strategy_group。
其中strategy_group是strategy和group的id联系对应表。
我想查询的是strategy的全部,和group中的Gatewaymac。自己写的查询语句如下
请问大佬怎么把那些没有group联系的strategy信息也显示出来呀,并且将Gatewaymac值设为空
回答:
你应该使用 LEFT JOIN
,可以保留被拼表字段为空的数据。
LEFT JOIN
时没有对应值的数据的字段就是空值 null
,如果你想空的时候有一个默认值可以借助 IF
函数:
SELECT IF(gatewaymac IS NULL, 'defaultValue', gatewaymac) gatewaymac
回答:
inner join 的使用导致的,改写了一下你的语句,希望能帮助到你
select s.*,ifnull(g.gatewaymac)from vle_strategy s
left join strategy_group sg
on s.id = sg.strategy_id
left join vle_group g
on sg.group_id = g.id
以上是 向数据库大佬请教一个联合查询问题 的全部内容, 来源链接: utcz.com/p/944300.html