SQL SHOW还有一个列名FROM运算符

时间:2010-12-08 10:11:15

标签: sql mysql

我需要显示来自IN的列  运营商
我的疑问是:

    SELECT prizes.type,prizes.name
       FROM  lottery_payment_prizes payment
         JOIN lottery_prizes prizes ON 
          prizes.id =  payment.prize_id 
     WHERE payment.payment_id IN
       (( SELECT id FROM lottery_payments 
      WHERE  lottery_id = (SELECT id FROM lotteries WHERE abbr = 'TR' AND group_id = '3' )))

结果是:alt text

我的问题:如何在lottery_payments中显示两列, lottery_payments仅返回ID到IN运算符

功能。
我需要在lottery_payemnts表中显示列名“place” 谢谢大家。

2 个答案:

答案 0 :(得分:2)

如果您需要lottery_payments中的列,则需要为其添加联接:

SELECT payments.place, payments.id, prizes.type, prizes.name
   FROM  lottery_payment_prizes payment
     JOIN lottery_prizes prizes ON 
      prizes.id =  payment.prize_id 
     JOIN lottery_payments payments ON 
      payment.payment_id =  payments.id 
 WHERE lottery_id = (SELECT id FROM lotteries WHERE abbr = 'TR' AND group_id = '3' )

答案 1 :(得分:1)

而不是使用IN你应该使用join

SELECT prizes.type,prizes.name
  FROM 
   lottery_payment_prizes payment
 JOIN 
   lottery_prizes prizes ON prizes.id =  payment.prize_id 
 JOIN lottery_payments lp ON payment.payment_id = lp.id
  WHERE  lp.lottery_id = (SELECT id FROM lotteries WHERE abbr = 'TR' AND group_id = '3' )))