我将如何在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:我不知道这个查询是否正确,但希望你明白我想要实现的目标。
答案 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的约定是具有名为participants
和winners
的表(对于模型Participant
和Winner
),并且还使列名称小写。加入两个主键也很奇怪:其中一个应该是外键。在任何情况下,如果我们假设这些命名更改,但保持连接条件相同,您可以在ActiveRecord中查询,如下所示:
@participants = Participant.select(:id, :name, :email, :number)
.joins("INNER JOIN winners ON winners.id = participants.id AND winners.sweepstakes_id = participants.sweepstakes_id")