【join查询这种黑科技在数据量小的情况下可以使用,基本没有什么影响,数据量大的时候,join的性能可能会是硬伤,应该尽量避免,可以分别根据索引取单表数据然后在应用层对数据进行join、merge】, 想问下例如现在有三个表user
、department
、article
,album
(专辑)
user表:
id int primary key auto_increment, name char(32), password char(32), created_at bigint, updated_at bigint, is_delete int default 0, dep_id int (对应department表的 `id`)
department表:
id int primary key auto_increment, name char(32), pid int default 0, created_at bigint, updated_at bigint, is_delete int default 0
article表
id int primary key auto_increment, title char(100), content text, user_id int,(对应 user 表的 `id`) cate_id int, album_id int, (对应 album 表的 `id`) created_at bigint, updated_at bigint, is_delete int default 0
album专辑表:
id int primary key auto_increment, title char(100), user_id int, (对应 user 表的 `id`) pid int default 0, created_at bigint, updated_at bigint, is_delete int default 0
现在想查询用户id
为 5 , 并找出属于他自己专辑id
为 10 下最新发表的 10 篇文章(这10篇当中当然不能包括被删除的文章), 不能使用join
关联查询, 而是使用这种方式实现[分别根据索引取单表数据然后在应用层对数据进行join、merge], 该如何实现呢?(最好能够有sql举例说明)
首先你要理解什么叫做在应用层面实现。
另外一个,你都知道user_id为5了,根本涉及不到什么关联查询,你直接:
就可以搞定了啊