php,mysql水平分表问题 例如用户表user有400万用户分四张表user01,user02,user03,user04

现在问题是,如果有这样的情况--比如张三,他注册的时候是写入在user01表,但隔了好久之后才推荐用户来注册,所以他推荐的下层用户可能分布在user02,user03或u... 现在问题是,如果有这样的情况--比如张三,他注册的时候是写入在user01表,
但隔了好久之后才推荐用户来注册,所以他推荐的下层用户可能分布在user02,user03
或user04 现在我如果要查询要张三有哪些下级用户应该怎么做?
表结构 id name pid(上级用户id)
展开
 我来答
阳光上的桥
2016-09-30 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21424 获赞数:65796
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
你这样的情况可以使用UNION
SELECT * FROM user01 WHERE pid=张三的ID UNION
SELECT * FROM user02 WHERE pid=张三的ID UNION
SELECT * FROM user03 WHERE pid=张三的ID

【张三的ID】先用语句查询出来:
SELECT id FROM user01 WHERE name='张三' UNION
SELECT id FROM user02 WHERE name='张三' UNION
SELECT id FROM user03 WHERE name='张三'

其实一般建议不这样分表,数据太大可以考虑使用专业点的DBMS,程序像使用当个逻辑表,表的存储由系统优化,有可能分布在一系列磁盘阵列上,甚至可能是分布在多个服务器上。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式