2009-08-03 10 views
6

Parece que la selección predeterminada para Sequel es "select *", lo que causa todo tipo de problemas cuando se agregan algunas uniones. Por lo menos terminas con los ids incorrectos en tus objetos (porque luego habrá más de una columna "id" devuelta). Haciendo algo comoSequel seleccionando demasiadas columnas

.select("people.*") 

parece que funciona, pero trata la cadena pasada como una columna y la cita. Hasta ahora he tenido que volver al SQL desnudo para resolver esto, pero sé que tiene que haber una mejor manera.

Respuesta

5

El comportamiento predeterminado de Sequel es seleccionar todas las columnas, pero es fácil sobrescribirlas. Si desea seleccionar sólo todas las columnas de una sola tabla:

.select(:people.*)

Si desea utilizar una cadena SQL literal:

.select('people.*'.lit)

+6

estas sintaxis no están funcionando para mí, como de la Secuela 4.10. ': personas. *' se queja de 'método indefinido * para: personas: Símbolo', y' 'personas. *'. lit' se queja 'método no definido encendido para" personas. * ": Cadena'. ': 'personas. *' 'solo termina buscando' "personas. *" '. '.select_all (: people)' hace el truco, sin embargo. – womble

+0

'select_all' también acepta múltiples tablas. Si quiere todas las columnas de un par de tablas y una columna específica de una tercera tabla, use 'select_all (: tbl1,: tbl2) .select_more (: tbl3__col)' – Kelvin

+2

''people. *'. Lit' ahora es' Sequel. lit ('personas. *') ' – Kelvin

Cuestiones relacionadas