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