"MySQL" número de línea asociado con la consulta

Aquí Insertar imagen Descripción

prefacio

Siempre creemos que la buena está a punto de suceder


fondo

Hace algún tiempo se encuentran con un problema de este tipo, echa un vistazo a una tienda en 2020 y 2019 eventos de tipo 'xxx' fecha, debido a razones históricas, las actividades de 2019 y 2020 eventos se almacenan en dos tablas, requerido por el extranjero los resultados muestran la conexión se ponen juntos, el resultado final sea probablemente un largo camino:

2019 Fecha 2019 Eventos 2020 Fecha 2020 Eventos
01/05/2019 sección xxx 01/02/2020 sección xxx
03/12/2019 sección xxx 04/10/2020 sección xxx
07/19/2019 sección xxx 05/06/2020 sección xxx
09/09/2020 sección xxx
12/15/2020 sección xxx

hoyo escalonada

Sólo se hizo cargo de las necesidades del momento, mi corazón es tan

Aquí Insertar imagen Descripción
Recurrí a mis grado de la escuela primaria 5 conocimientos de SQL, por el teorema de Fermat, la fórmula de Taylor, el teorema de Lagrange y la Regla del Hospital, combinado con mi deslumbrante uno habilidades de escritura de los dedos, y, finalmente, a la altura de las expectativas no escribió a cabo

Aquí Insertar imagen Descripción
¿Cómo es causa del problema, una investigación independiente para el tipo de evento 2019 'xxx' fecha es muy simple, solo tipo de consulta de la actividad en 2020 como 'xxx' fecha también es muy simple, las condiciones de la misma? Sin duda habrá tonto decir, ah, ah, o asociados con las actividades asociadas con el tipo de almacén Identificación

Aquí Insertar imagen Descripción
Resultado de la búsqueda Resultados de la búsqueda de la izquierda y la derecha tienen sido la salida de la tienda, respectivamente, en 2020 y 2019 eventos de tipo 'xxx' la fecha, si se hace por el ID de tienda o tipo de actividad se asocia con un producto cartesiano , por lo que la necesidad de otro para encontrar otras condiciones relacionadas

resolver

Holding dude en preguntar, no, cae en desgracia se le preguntó sobre el aprendizaje de la actitud, pregunte a nuestro jefe, la escena era algo como esto

Aquí Insertar imagen DescripciónGran Hermano me mostró el camino de Ming, el número de línea asociada a la consulta, y luego guió personalmente mucho, en el esplendor de Daniel y mis esfuerzos incansables (bai) fuerza (du), finalmente a la altura de las expectativas en escrito, después de la SQL simplificado sustancialmente como sigue:

SELECT
	* 
FROM
	( 
	SELECT 
		@rownuma := @rownuma + 1 AS num_1, table_a.* 
	FROM table_a, 
	( SELECT @rownuma := 0 ) 
	) a
	LEFT JOIN ( 
	SELECT 
		@rownumb := @rownumb + 1 AS num_2, table_b.* 
	FROM table_b, 
	( SELECT @rownumb := 0 ) 
	) b ON a.num_1 = b.num_2

Los resultados de los resultados de la consulta a la consulta a la izquierda y derecha, respectivamente, para agregar un número de línea, número de línea es del 1 al principio, por lo que se puede hacer en el conjunto de datos y conjuntos de datos izquierdo sobre el derecho de asociación, pero

Aquí Insertar imagen Descripción
Cuando el número de filas del conjunto de resultados es menor o igual a la izquierda a la derecha de los resultados, este método no tiene ningún problema, entonces el resultado cuando el conjunto derecho mayor que el número de filas a la izquierda de ella, sí, y es el mismo que el número de filas a la izquierda de sólo la sección de visualización, así que la pregunta es, cuando el número de filas del conjunto de resultados inciertos acerca de cómo hacerlo? Sí, utilice las conexiones de unión en la combinación externa izquierda y externa derecha conjunto de resultados en el k-o

SELECT
	* 
FROM
	( 
	SELECT 
		@rownuma := @rownuma + 1 AS num_1, table_a.* 
	FROM table_a, 
	( SELECT @rownuma := 0 ) 
	) a
	LEFT JOIN ( 
	SELECT 
		@rownumb := @rownumb + 1 AS num_2, table_b.* 
	FROM table_b, 
	( SELECT @rownumb := 0 ) 
	) b ON a.num_1 = b.num_2
	UNION
	SELECT
	* 
FROM
	( 
	SELECT 
		@rownumc := @rownumc + 1 AS num_1, table_a.* 
	FROM table_a, 
	( SELECT @rownumc := 0 ) 
	) a
	RIGHT JOIN ( 
	SELECT 
		@rownumd := @rownumd + 1 AS num_2, table_b.* 
	FROM table_b, 
	( SELECT @rownumd := 0 ) 
	) b ON a.num_1 = b.num_2

notas

Use los números de línea cuando recuerde no usar el nombre del mismo nombre, debe ser como este

Aquí Insertar imagen DescripciónSi se utiliza el mismo nombre, se encuentra que el conjunto de resultados asociado con una columna después de la salida será una gran cantidad de espacio en blanco, no me pregunte por qué sé que hay un pozo Han Han y fue hace mucho tiempo, no saber la razón

Aquí Insertar imagen Descripción

resumen

Esto es similar a la evolución real encontrado ninguna regla asociada con la escena, de hecho, relativamente pequeña, pero debido a la falta de una gran cantidad de método asociado MySQL SQL, ha dado lugar a otra cosa necesidad de pensar en métodos para resolver, espero que lea mi etapa de gira a cielo después de menos capaz de explorar una mina.

Y animar a cada parte de

Publicó un artículo original · ganado elogios 0 · Vistas 47

Supongo que te gusta

Origin blog.csdn.net/zgbzbl/article/details/105159876
Recomendado
Clasificación