网站有个用户收藏的功能,举例有3个数据表
数据表一:favorites(收藏数据)
id type(1为商品,2为文章) cid(文章或商品的id) dateline(收藏日期)
数据表二:goods(商品)
id title
数据表二:articles(文章)
id title
我想先
select * from favorites order by dateline desc
然后通过取得的cid来读取收藏的文章或商品的标题
取标题我认为有2种方法,一种是foreach循环,cid,每一条循环读一次数据库
if($type==1){
select * from goods where id = $value['cid'];
}
另一种方法是读取出来的cid分别放到对应的商品或文章2个数组里,
然后再通过
select * from goods where id in($array_goods);
select * from articles where id in($array_goods);
我觉得第二种方法比第一种方法会高一点,但是用第二种方法我不懂两个数据表(goods, articles)读出来的标题组合起来要怎么按照favorites里的的dateline倒序来排序呢?
望高手指点一下,谢谢各位大佬。
联表,然后取出的时候用 IF 处理一下,如果 type 多了的话,就得用
case then
了不过如果单次要查询的数据量不是很大的话,还是比较倾向于第二种方式。