[SOLUCIONADO] Duda sobre SELECT UNION - Versión para impresión +- Comunidad Gambas-es (https://gambas-es.org) +-- Foro: Gambas (https://gambas-es.org/forum-3.html) +--- Foro: Bases de Datos (https://gambas-es.org/forum-6.html) +--- Tema: [SOLUCIONADO] Duda sobre SELECT UNION (/thread-890.html) |
Duda sobre SELECT UNION - gambafeliz - 18-05-2022 Hola Esta pregunta es para todo aquel que tenga muy claro el comportamiento de SELECT UNION en mi caso en el motor SQLite3. Caso a describir: Hago un SELECT donde pongo la columna Fecha A y Fecha B donde Fecha B no tiene por que estar rellena y cuando no esta rellena tiene un "-" para distinguir el campo vacío. Dicho esto, sería: Código: 1er. select Yo pensaba para el caso descrito: Que los datos del primer select se cargarían en el result primero y tras él, el segundo select se cargaría a continuación, pero en mis pruebas se mezclan Alguien sabe cual es la razón. En definitiva, yo se que con una vista podría resolver mi duda, pero alguien sabe la razón de si no ordeno nada en el union principal, por que no toma mi lógica descrita. Gracias. RE: Duda sobre SELECT UNION - Shordi - 19-05-2022 Nunca he necesitado utilizar la cláusula Union, así que no te puedo responder pero sí te digo que Union relaciona registros enteros. Para relacionar columnas se debe utilizar join (left join o inner join). Saludos. RE: Duda sobre SELECT UNION - gambafeliz - 19-05-2022 Shordi, Shordi, Gracias pero me temo que estas mas perdido que el barco del arroz en el triangulo de las bermudas Creo que no has entendido nada, pero, no importa. Tras revisar el problema, he observado que en SELECT Union, uses o no, ORDER BY, el ordena de forma predeterminada siempre que el usuario no diga lo contrario por la columna primera que se encuentre y es lo que hace este SELECT UNION que propongo, por eso, siempre me baraja los datos este de acuerdo yo o no. Estoy pendiente de comprobar la documentación de SELECT UNION pero me temo que cuando un usuario no especifica el ORDER BY de salida de los datos, UNION asume, que debe ordenar por la columna primera. Cosa que para mi, en mi opinión personal es una autentica CAGADA, con perdón si es parte de la norma, ya que esto hace que no podamos hacer justo el SELECT UNION que yo había pensado como totalmente lógico, pero, yo no he realizado el estándar SQL bajo SQLite3. Saludos ==============Solucionado========================= Tras seguir investigando, la solución es que en vez de poner UNION hay que poner UNION ALL y en las UNION interiores al UNION ALL debe ser ordenado según el siguiente criterio, debes poner el SELECT UNION interior que deseas que se cargue primero en la primera posición y así sucesivamente como si de una carga de datos en fila se tratara. RE: Duda sobre SELECT UNION - Shordi - 19-05-2022 (19-05-2022, 11:07)gambafeliz escribió: Shordi, Shordi, Gracias pero me temo que estas mas perdido que el barco del arroz en el triangulo de las bermudasLlevas razón. Ni he entendido ni escarmentado. Tendré que ponerle remedio. Saludos. RE: Duda sobre SELECT UNION - gambafeliz - 19-05-2022 (19-05-2022, 13:39)Shordi escribió: Llevas razón. Ni he entendido ni escarmentado. Tendré que ponerle remedio. Oye, Shordi esto no debo entenderlo como que te has enfadado ni nada por mi comentario, ¿no? por que sinceramente yo en particular no pretendo ni pretendía nada como eso. Estaba comentándote en total broma así a ti pero nunca con intensión de ofenderte de ninguna forma. Esto es mi verdad. En fin, sino es así, es que a mi me ha parecido por tu respuesta y creo que si es así me estas prejuzgando totalmente erróneamente. Saludos |