encuentre fechas mínimas y máximas únicas de 4 tablas – php

2 minutos de lectura

avatar de usuario
ayudadev

Estoy usando wordpress y tengo 4 tablas personalizadas. Cada uno de ellos se ve así:

Table1       Table2        Table3        Table4

date         date          date          date
2016-07-21   2016-11-13    2016-10-19    2016-11-18  
2016-09-16   2016-10-27    2016-11-13    2016-10-25
2016-09-09   2016-09-30    2016-07-15    2016-09-28
2016-11-11   2016-08-19    2016-11-17    2016-10-24

Necesito encontrar la fecha mínima de estas 4 tablas y la fecha máxima de estas 4 tablas. Traté de hacer eso a través del siguiente código:

$minViews = $wpdb->get_results("
SELECT MIN(date) as min_date FROM Table1 UNION 
SELECT MIN(date) as min_date FROM Table2 UNION 
SELECT MIN(date) as min_date FROM Table3 UNION 
SELECT MIN(date) as min_date FROM Table4");

$maxViews = $wpdb->get_results("
SELECT MAX(date) as max_date FROM Table1 UNION 
SELECT MAX(date) as max_date FROM Table2 UNION 
SELECT MAX(date) as max_date FROM Table3 UNION 
SELECT MAX(date) as max_date FROM Table4");

Pero la consulta anterior devuelve la fecha mínima y máxima de cada tabla. Pero necesito encontrar la fecha mínima de las 4 mesas y fecha máxima de las 4 mesas.

  • No sé por qué tienes 4 tablas, pero de todos modos… ÚNETE primero y encuentra el mínimo y el máximo de esa subconsulta. (No estoy seguro de lo que quiere decir con ‘único’ en este contexto)

    – Fresa

    18 de noviembre de 2016 a las 8:11


Siempre puede usar una subconsulta en su cláusula FROM:

SELECT MIN(date), MAX(date) FROM
(
    SELECT date FROM Table1
    UNION SELECT date FROM Table2
    UNION SELECT date FROM Table3
    UNION SELECT date FROM Table4
) AS sq;

  • ¡Gran respuesta! Gracias. Pero ¿y si mi date el nombre de la columna es diferente en 2 tablas. Por ejemplo, tabla1 – dateTabla 2 – ins_dateTabla 3 – datemesa4 – ins_date @Daniel Heinrich

    – aiddev

    18 de noviembre de 2016 a las 8:21

  • No importa La primera tabla define el nombre de la columna, en este caso Table1 define el nombre de la columna resultante como date.

    – Daniel Enrique

    18 de noviembre de 2016 a las 8:28


  • yo tambien estaba pensando asi pero en realidad importa porque ahora me devuelve array(0) { }. ¿Algunas ideas? @Daniel Heinrich

    – aiddev

    18 de noviembre de 2016 a las 8:31


  • ¿puedes mostrarme tu código? Y dime que base de datos estas usando?

    – Daniel Enrique

    18 de noviembre de 2016 a las 8:38

  • Aquí está: $minMaxViews = $wpdb->get_results("SELECT MIN(date), MAX(date) FROM( SELECT ins_date FROM table1 UNION SELECT insertion_date FROM table2 UNION SELECT ins_date FROM table3 UNION SELECT insertion_date FROM table4) AS subquery"); var_dump($minMaxViews);. Así que esto vuelve array(0) { }. @Daniel Heinrich

    – aiddev

    18 de noviembre de 2016 a las 8:40

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad