它自己的查询将解释我所处的位置,我无法更改架构,有没有办法使用我从if语句中获取的表名并继续查询?
SELECT *,IF(user.type = 1,"staff","admin") as "table" FROM user WHERE "table".user_id = user.id
http://sqlfiddle.com/#!9/842be4/1
我尝试设置一个变量,但仍然没有成功。有任何想法吗 ? 谢谢。
答案 0 :(得分:5)
您希望拥有像
这样的动态查询create_table "appointments", force: :cascade do |t|
t.integer "user_id"
t.text "comments"
t.time "start_time"
t.time "end_time"
end
答案 1 :(得分:1)
我相信这会给你你想要的东西。
SELECT * FROM user INNER JOIN staff on user.id = staff.user_id UNION
SELECT * FROM user INNER JOIN admin on user.id = admin.user_id