说,我有 3 张桌子 - purchase, image,coupons
表中的字段purchase是 - purchase_id, image_id, user_id, purchase_time。
表中的字段image是 - image_id、image_name和image_caption其他图像详细信息。
表中的字段coupon是 -image_id和。user_idcoupon_id
[注:单purchase_id有唯一的image_id和user_id(购买的人),但coupon单image_id可以有多个user_id(很多人可以从同一张图片生成优惠券)。]
首先,我正在选择图像列表 -
SELECT p.purchase_id,
p.purchase_time,
p.user_id,
i.image_name,
i.image_caption
FROM purchase p
LEFT JOIN image i ON p.image_id = i.image_id
WHERE p.user_id IN ($friends_id_string)
ORDER BY p.purchase_time DESC
是一个用户的所有朋友的friends_id_string列表user_id
接下来,我需要coupon_id为每个图像(其值也可以NULL)
SELECT c.coupon_id
FROM coupon c
WHERE c.image_id = $image_id AND c.user_id = $user_id
因此,此查询告诉我该用户和该图像是否有活动coupon_id。
上述查询涉及单独查询每个图像,这是对数据库的冲击。我可以加入他们吗?