我有两个不同的表,我需要从一个表中获取商店ID列表,然后找到这些商店ID的优惠券列表。
目前,
SELECT `storename` FROM `stores` where `brandname` = 21
这将返回类似
的内容Store 1
Store 2
Store 3
Store 4
我需要运行另一个查询,如
SELECT * FROM `coupons` where `storename` = {{All these stores}}
我不能使用while循环,因为无法确定来自第一个查询的存储数量,并且我想要的输出在使用while循环时未按预期进行,因为我正在尝试执行类似
while(first query output get storename)
{
do query here
while(second query output get all coupons per store)
{
// All coupons display here.
}
}
这也变得非常复杂,无论如何我可以调整我的SQL查询并轻松获得结果吗?
由于
答案 0 :(得分:2)
您可以使用此查询:
SELECT * FROM `coupons`
where `storename` IN (
SELECT `storename` FROM `stores` where `brandname` = 21);
答案 1 :(得分:1)
$query = 'SELECT t.storename, h.couponid AS couponsid, h.coupon AS couponvalue'
. ' FROM #__stores AS t'
. ' LEFT JOIN #__coupons AS h ON h.storename = t.storename'
. ' where `brandname` = 21'
. ' ORDER BY anything you like'
;