求 3 条 mysql 的查询语句

2019-01-27 08:01:37 +08:00
 mamahaha
utab1=子用户表 1,id(用户 id),name(作者名),pwd
utab2=子用户表 2,id(用户 id),name(作者名),pwd
posts=文章表,id(文章 id),u_id(用户 id),title,content
语句 1:向用子户表内添加新用户,当 utab1 的 id>1000 时,新用户存入 utab2,并且 utab2 的初始 id 为 1001
语句 2:查询 posts 表内 id=1 的文章的作者名
语句 3:查询 id=1002 的用户的所有文章
请教一下这样的情况如何查询啊,还有不确定是不是需要做一个用户总表来进行调度。
4121 次点击
所在节点    MySQL
12 条回复
mamahaha
2019-01-27 08:14:44 +08:00
语句 2 改为查询 posts 表内 id=1,u_id=1001 的文章的作者名
d3vil
2019-01-27 08:16:00 +08:00
语句 1 要用触发器?或者设置表一的某种初始参数?不懂,不会没遇过相似情景。
2:(select u.name from utab1 u left join posts p on u.id = p.u_id) union all (select u.name from utab2 u left join posts p on u.id = p.u_id)
3:select p.title from utab2 u left join posts p on u.id = p.u_id where u.id = 1002
d3vil
2019-01-27 08:17:30 +08:00
@mamahaha 你这个改的莫名其妙阿,你都有 uid 了,你直接查用户表不就行了吗?
mamahaha
2019-01-27 08:22:41 +08:00
@d3vil 谢谢回答啊,目前我思维有点混乱啊
d3vil
2019-01-27 08:23:37 +08:00
@mamahaha 看出来了
shakoon
2019-01-27 11:17:02 +08:00
建一个视图,把分表 union all 起来,查询时就查这个视图
mamahaha
2019-01-27 11:53:16 +08:00
@shakoon 请收下我的感谢
mamahaha
2019-01-27 11:57:39 +08:00
@shakoon 分开表存是为了提高查询效率,不知道 union all 会不会影响效率
d3vil
2019-01-27 12:07:37 +08:00
@mamahaha
sql server 必须把视图查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,sql server 也要把它变成一个复杂的结合体,需要花费一定的时间。
要么写存储过程,要么用我的 sql 直接查,你看重性能,就少用视图
Linxing
2019-01-27 14:15:15 +08:00
歪个楼 UNION ALL 的情况 是在查询的时候做 还是 SELECT 两个结果出来 在语言的层面做处理 性能上有差别吗
CRVV
2019-01-28 09:06:59 +08:00
如果连 3 都不过写,这活就别干了,从头学一下 SQL 再说

如果要分表,也不是 1000 行就分的,你说 1000 万行分一个表好像还可以接受

直接搞两个表完事,肯定比你这么折腾出来的快
mamahaha
2019-01-28 10:56:18 +08:00
@CRVV 本来这个就是在靠做程序学 sql,举例子说 1000 行和说 1000 万行性质有区别吗?啥叫从头学?你这理解能力根本就没看出来为啥要分表吧?

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

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

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

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

© 2021 V2EX