0
我有一个查询得到的值(这是相当长的,但这里是它的要点)为什么我不能从导轨IFNULL
Name.find_by_sql(['SELECT IFNULL(users.last_name, "nil") FROM users JOIN user_groups ON user_groups.user_id = users.id JOIN groups ON groups.id = user_groups.grous_id WHERE users.first_name IN (?)', ['Sam','Sally']]) AND groups.name='baseball'
现在山姆是棒球组,但萨利不是。
我希望,我会回来(Sam的姓是山)
['Hill','nil']
但我只得到[“山”]。 我不确定为什么我没有得到'零'返回。 我试过每个连接语句上的'LEFT OUTER JOIN',因为我想也许这就是'零'丢失的地方,但我仍然只得到一个返回的项目。
这似乎还有一段路丹,不幸的是,我收回了所有不属于棒球队的用户,我试图从“IN”声明中找回那些用户。另外,当我使用'RIGHT OUTER JOIN'时,我只得到所有用户,如果我只使用JOIN,我只能回到'Hill' – pedalpete
如果你让所有用户回来,那么users.first_name过滤器肯定是'无法正确应用。不幸的是,我不熟悉你使用的语法。也许只是尝试硬编码users.first_name IN('Sam','Sally')',以确保它是你的应用程序引起的问题,而不是查询本身。 –
啊是的,你是对的。谢谢 – pedalpete