SQL de utilidad...
Para modificar un campo de una tabla A relacionando por campo clave de una tabla B:
UPDATE tablaA
SET tablaA.valorACambiar = valor
WHERE tablaA.valorClave IN (SELECT tablaB.valorClave FROM tablaB WHERE {condiciones where tablaB})
AND {condiciones where tablaA}
Para modificar un campo de una tabla A con un valor de otra tabla B. (Relacion 1 a 1)
UPDATE tablaA INNER JOIN tablaB ON (tablaA.valorClave = tablaB.valorClave)
SET tablaA.valorACambiar = tablaB.valorDeOrigen
WHERE {condiciones adicionales sobre tablaA} AND/OR {condiciones adicionales sobre tablaB}
creo que esta segunda posibilidad tambien sería válida:
UPDATE tablaA
SET tablaA.valorACambiar =
(SELECT tablaB.valorDeOrigen FROM tablaB WHERE tablaA.valorClave = tablaB.valorClave AND/OR {condiciones adicionales sobre tablaB})
WHERE {condiciones adicionales sobre tablaA}
Para realizar consultas sobre tablas:
Selects anidados (este tipo de select solo permite obtener resultados de la tabla definida en la clausula FROM)
SELECT tablaA.*
FROM tablaA
WHERE tablaA.valorClave IN
(SELECT tablaB.valorClave FROM tablaB WHERE {condiciones where tablaB})
AND/OR {condiciones where tablaA}
Selects con INNER JOIN (relacion 1 a 1)
SELECT tablaA.*, tablaB.*
FROM tablaA INNER JOIN tablaB ON (tablaA.valorClave = tablaB.valorClave)
WHERE {condiciones adicionales sobre tablaA} AND/OR {condiciones adicionales sobre tablaB}
Selects con LEFT JOIN (relacion 1 a N)
SELECT tablaA.*, tablaB.*
FROM tablaA LEFT JOIN tablaB ON (tablaA.valorClave = tablaB.valorClaveMultiple)
WHERE {condiciones adicionales sobre tablaA} AND/OR {condiciones adicionales sobre tablaB}
Añadir un contador de fila
SELECT (SELECT COUNT(*) FROM myTable T1 WHERE T1.UniqueField<=T2.UniqueField) as RowNum, T2.OtherField
FROM myTable T2
ORDER By T2.UniqueField
No hay comentarios:
Publicar un comentario