knu*_*nut 4 ruby sql union sequel
我想定义一个像这样的SQL命令:
SELECT * FROM WOMAN
UNION
SELECT * FROM MEN
Run Code Online (Sandbox Code Playgroud)
我尝试使用Ruby + Sequel中的以下代码序列来定义它:
require 'sequel'
DB = Sequel::Database.new()
sel = DB[:women].union(DB[:men])
puts sel.sql
Run Code Online (Sandbox Code Playgroud)
结果是(我在结果上做了一些漂亮的打印):
SELECT * FROM (
    SELECT * FROM `women` 
    UNION 
    SELECT * FROM `men`
) AS 't1'
Run Code Online (Sandbox Code Playgroud)
还有一个(多余的?)SELECT.
如果我UNION在此代码示例中定义了多个
sel = DB[:women].union(DB[:men]).union(DB[:girls]).union(DB[:boys])
puts sel.sql
Run Code Online (Sandbox Code Playgroud)
我得到了更多多余的SELECT.
SELECT * FROM (
  SELECT * FROM (
    SELECT * FROM (
      SELECT * FROM `women` 
      UNION 
      SELECT * FROM `men`
    ) AS 't1' 
    UNION 
    SELECT * FROM `girls`
  ) AS 't1' 
  UNION
  SELECT * FROM `boys`
) AS 't1'
Run Code Online (Sandbox Code Playgroud)
到目前为止我没有发现任何问题,结果似乎是一样的.
我的问题:
selects 的原因(旁边续集内部程序)|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1475 次  |  
        
|   最近记录:  |