sql >> Base de Datos >  >> RDS >> Mysql

¿Combinar dos declaraciones de selección en dos columnas?

Si cada una de sus consultas devuelve solo 1 fila, puede usar:

SELECT (seleccione Start_Date de table1 donde Start_Date no está (seleccione End_Date de table1)) AS StartDate, (seleccione End_Date de table1 donde End_Date no está (seleccione Start_Date de table1) ) AS EndDate 

Si sus consultas arrojan más de 1 fila, debe elegir una solución diferente:

Puedes usar UNION :(Tendrás las dos consultas desalineadas con "NULL" en la otra columna)

Puedes usar JOIN Si tiene un campo para usar como "Unirse en", puede usar este campo, si no, puede agregar un campo para unirse (pero debe verificar los datos devueltos para evitar errores) También debe verificar qué tipo de unión puede ser bien por ti (Interior - Izquierda - derecha) En el ejemplo, agrego un campo para unir y uso una Unión interna:

SELECT Start_Date, End_DateFROM (seleccione 1 como InnerId, Start_Date from table1 donde Start_Date no está en (seleccione End_Date de table1)) As Tab1 INNER JOIN (seleccione 1 como InnerId, End_Date from table1 donde End_Date no está en (seleccione Start_Date) from table1) ) COMO Tab2USING(InnerId)