mysql中的mysql连接查询有两个条件

时间:2015-09-12 08:50:00

标签: mysql ruby-on-rails ruby

我将如何在ruby中编写此SQL查询:

Select Id,Name,Email,number
from Participants
INNER JOIN Winners
on Winner.participant_id = Participant.id && Winner.sweepstake_id = Participant.sweepstake_id

参与者和获奖者有一对一的关系 P.S:我不知道这个查询是否正确,但希望你明白我想要实现的目标。

3 个答案:

答案 0 :(得分:1)

试试这个:

Participant.joins("INNER JOIN Winner ON Winner.id = Participant.id AND Winner.sweepstake_id = Participant.sweepstake_id").select("participants.id, participants.name, participants.email, participants.number")

答案 1 :(得分:1)

python_proj

试试这个

答案 2 :(得分:0)

Rails的约定是具有名为participantswinners的表(对于模型ParticipantWinner),并且还使列名称小写。加入两个主键也很奇怪:其中一个应该是外键。在任何情况下,如果我们假设这些命名更改,但保持连接条件相同,您可以在ActiveRecord中查询,如下所示:

@participants = Participant.select(:id, :name, :email, :number)
  .joins("INNER JOIN winners ON winners.id = participants.id AND winners.sweepstakes_id = participants.sweepstakes_id")