你这样的情况可以使用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,程序像使用当个逻辑表,表的存储由系统优化,有可能分布在一系列磁盘阵列上,甚至可能是分布在多个服务器上。