mysql查询两张表,两张表结构完全一样,一张表是另外一张表的补充,当一张表不存在时查另外一张表

mysql查询两张表,两张表结构完全一样,一张表是另外一张表的补充,当一张表不存在时查另外一张表,第1张

这个逻辑很多时候都是在代码中完成的,先查询B表,如果有就返回,如果没有再查询A表

如果一定要用sql完成也是可以的

select *,1 as sort from B where id=5

union

select *,2 as sort from A where id=5

order by sort asc

limit 1

分别查询A、B表中id=5的结果,用union合并。

如果A、B表只有一个表中有数据,那么结果肯定符合预期。

如果两个表都有id为5的数据,那么查询结果是两行。于是这里自定义了一个sort字段,B表为1,A表为2,对两条结果升序排列取第1条。这样就保证了如果A、B表都有数据时最后获取的是B表的数据。

你的意思是公用一套用户系统,但是发贴不一样,是吧。

一般来说论坛积分都是跟发贴对应的,如果你要是帖子不一样,积分好像就不能一样了。

积分一样还要各自的帖子不一样,这样貌似 *** 作就有点难度了。

select t3.id from company t1 

    inner join product t2 on t1.id=t2.cid 

    inner join apply t3 on t2.id=t3.pid

  where t1.id=要查的公司id

  group by t3.id

上面只是大概,t2.cid是product中公司的外键,t3.pid是apply中产品的主键,具体表结构是什么相应更改


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8569007.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存