多个选择查询MySQL没有while循环

时间:2014-08-27 01:25:46

标签: php mysql sql

我有两个不同的表,我需要从一个表中获取商店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查询并轻松获得结果吗?

由于

2 个答案:

答案 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'
    ;