Combinando múltiples resultados de consultas SELECT de UNA tabla

Mi mesa coordinateses:

id (PK) SERIAL, address (VARCHAR), city (VARCHAR), latitude (VARCHAR), longitude (VARCHAR)

Tengo una lista de 10,000 direcciones que estoy recorriendo para recuperar la latitud / longitud correspondiente si la dirección existe en la tabla.

La SELECTconsulta se ve así:

SELECT ADDRESS, CITY, LATITUDE, LONGITUDE FROM coordinates WHERE address = ? AND city = ?

Luego verifico el conjunto de resultados para ver si hubo una coincidencia. Las otras 9.999 direcciones se enlazan a través de la consulta anterior, lo que lleva demasiado tiempo.

¿Hay alguna manera de crear UNA consulta que contenga las 10,000 direcciones y devuelva un conjunto de resultados con 4 columnas: |address|city|latitude|longitude|

Cualquier dirección que no se encuentre debe tener un valor lat / lon vacío (0 o nulo) en esa columna del conjunto de resultados. Supongo que luego podría repetir el conjunto de resultados para identificar cualquier cosa que se haya perdido, mucho más rápido que 10,000 declaraciones.

¿Cuál es el mejor enfoque?

Respuesta 1

ACTUALIZACIÓN: se modificó para incluir direcciones de "consulta" inigualables en el resultado y se agregó QUERY_ID para ayudar a identificar las direcciones de "consulta", que podrían ser solo un índice en la lista que proporciona los parámetros de consulta.

Como es PostgreSQL, puede usar la VALUEScláusula, p. Ej.

SELECT q.QUERY_ID
     , c.ADDRESS
     , c.CITY
     , c.LATITUDE
     , c.LONGITUDE
  FROM (VALUES (1, ?, ?)
             , (2, ?, ?) // repeat as many times as needed
             , (3, ?, ?)
       ) AS q (QUERY_ID, ADDRESS, CITY)
  LEFT JOIN coordinates AS c
       ON  c.ADDRESS LIKE q.ADDRESS
       AND c.CITY LIKE q.CITY

Ahora necesita recorrer sus 10000 direcciones y establecer todos los valores para eso PreparedStatement.

Respuesta: 2

JHipster gradle: Causado por: java.lang.ClassNotFoundException: org.jboss.logging.BasicLogger para dependencias de proyecto de módulo único {compilar "org.jboss.logging: jboss-logging"} Presionando Actualizar ...

Tenemos un código que sale al buzón de una persona y copia correos electrónicos con archivos adjuntos a un sistema de archivos. El código para copiar el mensaje y el archivo adjunto funciona bien para la mayoría de los archivos, pero hay un problema ...

Hola, tengo un problema cuando intento validar si el registro existe en este método, el cuadro de diálogo de alerta está bien, en la pantalla aparece "registro no encontrado", pero cuando escribo el registro correcto ...

Estoy tratando de analizar una cadena JSON, pero obtengo un error al intentar obtener un objeto anidado: JSONObject jsonObject = new JSONObject (jsonString); System.out.println (jsonObject); System.out.println (...