说,我有 3 张桌子 - purchase
, image
,coupons
表中的字段purchase
是 - purchase_id
, image_id
, user_id
, purchase_time
。
表中的字段image
是 - image_id
、image_name
和image_caption
其他图像详细信息。
表中的字段coupon
是 -image_id
和。user_id
coupon_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
。
上述查询涉及单独查询每个图像,这是对数据库的冲击。我可以加入他们吗?