Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Sentencia SQL que no me sale

Estas en el tema de Sentencia SQL que no me sale en el foro de Bases de Datos General en Foros del Web. Buenas les cuento tengo que hacer la siguiente sentencia SQL y no me sale Cita: TABLA1 ID NOMBRE_CATEGORIA ... Cita: TABLA2 ID DESCRIPCION IMAGE KEYWORD ...
  #1 (permalink)  
Antiguo 04/08/2007, 23:22
 
Fecha de Ingreso: enero-2007
Mensajes: 51
Antigüedad: 17 años, 10 meses
Puntos: 0
Pregunta Sentencia SQL que no me sale

Buenas les cuento tengo que hacer la siguiente sentencia SQL y no me sale

Cita:
TABLA1
ID
NOMBRE_CATEGORIA
...
Cita:
TABLA2
ID
DESCRIPCION
IMAGE
KEYWORD
Ambas tablas estan relacionadas por ID

Tengo que hacer un update de la tabla2, de la fila DESCRIPCION poniendo los registros de la TABLA1 NOMBRE_CATEGORIA en el,
Es decir en la DESCRIPCION tiene que aparecer los NOMBRE_CATEGORIA

Como hago?? YO PENSE ALGO ASI PERO NO ME SALE

Cita:
UPDATE `TABLA2`
SET `DESCRIPCION` =
(SELECT `NOMBRE_CATEGORIA` AS name,
FROM `TABLA1` INNER JOIN `TABLA2`)
  #2 (permalink)  
Antiguo 04/08/2007, 23:30
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 18 años
Puntos: 6
Re: Sentencia SQL que no me sale

Quizas esto te ayude

Código:
UPDATE T1
SET T1.Descripcion = T2.Nombre_Categoria
FROM Tabla1 T1
INNER JOIN Tabla2 T2
    ON T1.ID = T2.ID
WHERE T1.Descripcion <> T2.Nombre_Categoria
Cualquier cosa me dices....

Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #3 (permalink)  
Antiguo 05/08/2007, 12:27
 
Fecha de Ingreso: enero-2007
Mensajes: 51
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Sentencia SQL que no me sale

NO ME DA:

te paso los campos de la tabla como son reales:

TABLA categories
categories_id int(11)
category_head_title_tag varchar(80)

TABLA categories_description
categories_id int(11)
categories_name varchar(32)

UPDATE `categories`
SET `categories.category_head_title_tag` = `categories_description.categories_name`
FROM `categories`
INNER JOIN `categories_description`
ON `categories.categories_id` = `categories_description.categories_id`
WHERE `categories.category_head_title_tag` <> `categories_description.categories_name`

Cita:
MySQL ha dicho:

#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM `categories`
INNER JOIN `categories_description`
ON
  #4 (permalink)  
Antiguo 06/08/2007, 19:31
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 3 meses
Puntos: 105
Re: Sentencia SQL que no me sale

Holas,

prueba con esto:

Cita:
UPDATE TABLA1, TABLA2, SET TABLA1.DESCRIPCION=TABLA2.NOMBRE_CATEGORIA WHERE TABLA1.ID=TABLA2.ID
Nos avisas.

;)

Saludos
Gildus
__________________
.: Gildus :.
  #5 (permalink)  
Antiguo 07/08/2007, 03:27
 
Fecha de Ingreso: enero-2007
Mensajes: 51
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Sentencia SQL que no me sale

NOP NO DA


consulta SQL:

Cita:
UPDATE categories, categories_description,
SET categories.category_head_title_tag=categories_desc ription.categories_name
WHERE categories.categories_id = categories_description.categories_id
MySQL ha dicho:

#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET
categories.category_head_title_tag = categories_descripti
  #6 (permalink)  
Antiguo 07/08/2007, 04:27
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Re: Sentencia SQL que no me sale

... categories_description, SET

quita esa coma ','


Un saludo
  #7 (permalink)  
Antiguo 07/08/2007, 12:33
 
Fecha de Ingreso: enero-2007
Mensajes: 51
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Sentencia SQL que no me sale

el mismo error tira
  #8 (permalink)  
Antiguo 07/08/2007, 15:24
Avatar de zeusdelolimpo  
Fecha de Ingreso: agosto-2007
Mensajes: 54
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Sentencia SQL que no me sale

Cita:
Iniciado por lacasadelhard Ver Mensaje
NO ME DA:

te paso los campos de la tabla como son reales:

TABLA categories
categories_id int(11)
category_head_title_tag varchar(80)

TABLA categories_description
categories_id int(11)
categories_name varchar(32)

UPDATE `categories`
SET `categories.category_head_title_tag` = `categories_description.categories_name`
FROM `categories`
INNER JOIN `categories_description`
ON `categories.categories_id` = `categories_description.categories_id`
WHERE `categories.category_head_title_tag` <> `categories_description.categories_name`

Hola no se si tenga que ver que tiene comillas simples por que creo no lleva
en ninguna:

UPDATE categories
SET categories.category_head_title_tag = categories_description.categories_name
FROM categories
INNER JOIN categories_description
ON categories.categories_id = categories_description.categories_id
WHERE categories.category_head_title_tag <> categories_description.categories_name


Ademas creo que los campos a unir si no son numeros, deben de ser del mismo tipo y longitud y :

category_head_title_tag varchar(80)
=
categories_name varchar(32)

a ver si sirve salu2
  #9 (permalink)  
Antiguo 07/08/2007, 23:12
 
Fecha de Ingreso: enero-2007
Mensajes: 51
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Sentencia SQL que no me sale

nop NO ME DA SIN COMILLAS

Si sirve de algo pongo la version MySQL 4.0.25

Los campos son del mismo tipo
  #10 (permalink)  
Antiguo 08/08/2007, 01:27
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Re: Sentencia SQL que no me sale

categories_desc ription.categories_name

Quita el espacio entre la c y la r.

Salu2
  #11 (permalink)  
Antiguo 08/08/2007, 08:43
 
Fecha de Ingreso: enero-2007
Mensajes: 51
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Sentencia SQL que no me sale

NO HAY NINGUN ESPACIO ENTRE DICHAS LETRAS DEBE SER TU NAVEGADOR

Lo que estuve viendo q tal ves ayude es que no hace falta poner el nombre de la tabla anterior al registro (tabla.registro)

SELECT `category_head_title_tag ` , `categories_name`
FROM `categories_description`
INNER JOIN `categories`

Cita:
TABLA categories
categories_id int(11)
category_head_title_tag varchar(80)

TABLA categories_description
categories_id int(11)
categories_name varchar(32)
ESA SENTENCIA SELECT FUNCIONA COMO LA TRASLADO AL UPDATE?
  #12 (permalink)  
Antiguo 08/08/2007, 12:13
Avatar de zeusdelolimpo  
Fecha de Ingreso: agosto-2007
Mensajes: 54
Antigüedad: 17 años, 3 meses
Puntos: 0
De acuerdo Re: Sentencia SQL que no me sale

Cita:
Iniciado por lacasadelhard Ver Mensaje
nop NO ME DA SIN COMILLAS

Si sirve de algo pongo la version MySQL 4.0.25

Los campos son del mismo tipo

Bueno Amigo, yo cree las tablas con las espesificaciones que dices:

TABLA categories
categories_id int(11)
category_head_title_tag varchar(80)

TABLA categories_description
categories_id int(11)
categories_name varchar(32)

(claro sin datos )y puse la sentencia de Gabo77 sin las comitas simples (en sql server) y si medio; sin broncas y a la primera tons no se como sea el MySQL

Chiao Salu2
  #13 (permalink)  
Antiguo 08/08/2007, 15:09
 
Fecha de Ingreso: enero-2007
Mensajes: 51
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Sentencia SQL que no me sale

Cita:
UPDATE categories
SET categories.category_head_title_tag = categories_description.categories_name
FROM categories
INNER JOIN categories_description
ON categories.categories_id = categories_description.categories_id
WHERE categories.category_head_title_tag <> categories_description.categories_name
VOS DECIS Q ASI TE FUNCIONO???
  #14 (permalink)  
Antiguo 08/08/2007, 15:58
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 18 años
Puntos: 6
Re: Sentencia SQL que no me sale

Sip,pero se trata de sentencias de SQL Server, tu usas MySQL con lo cual la sentencia debe cambiar. La consulta de Gildus dices que no te funcionó?

Código:
UPDATE TABLA1, TABLA2
SET TABLA1.DESCRIPCION = TABLA2.NOMBRE_CATEGORIA
WHERE TABLA1.ID = TABLA2.ID
    AND TABLA1.DESCRIPCION <> TABLA2.NOMBRE_CATEGORIA

Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #15 (permalink)  
Antiguo 09/08/2007, 00:54
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Re: Sentencia SQL que no me sale

Cita:
Iniciado por lacasadelhard Ver Mensaje
NO HAY NINGUN ESPACIO ENTRE DICHAS LETRAS DEBE SER TU NAVEGADOR
Tranquilizate! o aprende a hacer un simple update!
  #16 (permalink)  
Antiguo 09/08/2007, 07:49
 
Fecha de Ingreso: enero-2007
Mensajes: 51
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Sentencia SQL que no me sale

GABO ME DA EL SIGUIENTE ERROR
Cita:
consulta SQL:

UPDATE `categories_description` ,
`categories` SET `categories.category_head_title_tag` = `categories_description.categories_name` WHERE ` categories_description.categories_id` = `categories.categories_id` AND `categories_description.categories_name` <> `categories.category_head_title_tag`
MySQL ha dicho:

#1054 - Unknown column 'categories.category_head_title_tag' in 'field list'
  #17 (permalink)  
Antiguo 09/08/2007, 09:37
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 18 años
Puntos: 6
Re: Sentencia SQL que no me sale

Ese error te dice que la columna que has puesto no existe, verifica la estructura de tu tabla

Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #18 (permalink)  
Antiguo 09/08/2007, 19:39
 
Fecha de Ingreso: enero-2007
Mensajes: 51
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Sentencia SQL que no me sale

LA ESTRUCTURA ES ESTA DONDE ESTA EL ERROR PQ NO LO ENCUENTRO:

TABLA categories
categories_id int(11)
category_head_title_tag varchar(80)

TABLA categories_description
categories_id int(11)
categories_name varchar(32)
  #19 (permalink)  
Antiguo 10/08/2007, 12:38
Avatar de zeusdelolimpo  
Fecha de Ingreso: agosto-2007
Mensajes: 54
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Sentencia SQL que no me sale

Cita:
Iniciado por lacasadelhard Ver Mensaje
LA ESTRUCTURA ES ESTA DONDE ESTA EL ERROR PQ NO LO ENCUENTRO:

TABLA categories
categories_id int(11)
category_head_title_tag varchar(80)

TABLA categories_description
categories_id int(11)
categories_name varchar(32)
Oye brother no quiero molestar pero ya me salio en My sql por que no checas
bien los nombres d las tablas igual tiene una letra en mayusculas o algun pex asi brother por que no le encuentro error como lo escribes pero no sabemos como este en tu BD a mi me funciono asi el codigo trata de ponerlo como esta aqui ok :

UPDATE categories_description, categories
SET categories.category_head_title_tag = categories_description.categories_name
WHERE categories_description.categories_id = categories.categories_id AND
categories_description.categories_name <> categories.category_head_title_tag

Espero sirva salu2
  #20 (permalink)  
Antiguo 10/08/2007, 12:42
Avatar de zeusdelolimpo  
Fecha de Ingreso: agosto-2007
Mensajes: 54
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Sentencia SQL que no me sale

Cita:
Iniciado por Gabo77 Ver Mensaje
Sip,pero se trata de sentencias de SQL Server, tu usas MySQL con lo cual la sentencia debe cambiar. La consulta de Gildus dices que no te funcionó?



Saludos!
Hola Gabo77 yo apenas estoy iniciandome en esto y quieria hacerte una pregunta yo entiendo esto:

Código:
UPDATE TABLA1, TABLA2
SET TABLA1.DESCRIPCION = TABLA2.NOMBRE_CATEGORIA
WHERE TABLA1.ID = TABLA2.ID

pero no entiendopara que es esta me puedes explicar ??:
    AND TABLA1.DESCRIPCION <> TABLA2.NOMBRE_CATEGORIA
  #21 (permalink)  
Antiguo 10/08/2007, 20:05
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 18 años
Puntos: 6
Re: Sentencia SQL que no me sale

se trata de una sentencia que excluye los campos que ya son iguales, no tiene caso actualizar los valores si no son diferentes no crees? Optimizacion!

Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #22 (permalink)  
Antiguo 10/08/2007, 21:25
 
Fecha de Ingreso: enero-2007
Mensajes: 51
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Sentencia SQL que no me sale

Cita:
Filas afectadas: 0 (La consulta tardó 0.0028 seg)
consulta SQL:
UPDATE categories_description,
categories SET categories.category_head_title_tag = categories_description.categories_name WHERE categories_description.categories_id = categories.categories_id AND categories_description.categories_name <> categories.category_head_title_tag
MMM LA SENTENCIA FUNCIONO PERO NO ME DIO RESULTADOS

TABLA categories
categories_id int(11)
category_head_title_tag varchar(80) NO POSEE DATOS*1

TABLA categories_description
categories_id int(11)
categories_name varchar(32) POSEE DATOS*2

YO QUIERO PASAR *1 A *1
  #23 (permalink)  
Antiguo 10/08/2007, 23:35
 
Fecha de Ingreso: enero-2007
Mensajes: 51
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Sentencia SQL que no me sale

LO HIZE FUNCIONAR

Cita:
UPDATE categories_description,
categories SET categories.category_head_title_tag = categories_description.categories_name WHERE categories_description.categories_id = categories.categories_id
AHORA TENGO OTRA DUDA SI ADEMAS DE TRASLADAR LOS DATOS DE :
categories.category_head_title_tag = categories_description.categories_name

QUIERO PONER UN TEXTO CONCATENADO EJEMPLO:


categories_name ------------------>category_head_title_tag
VASO-------------------------------------> VASO es un elemento de nuestra tienda
BOTELLA --------------------------------> BOTELLA es un elemento de nuestra tienda
CUCHARA--------------------------------> CUCHARA es un elemento de nuestra tienda

COMO HAGO ???
& "es un elemento de nuestra tienda" ???
  #24 (permalink)  
Antiguo 11/08/2007, 07:31
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 18 años
Puntos: 6
Re: Sentencia SQL que no me sale

exacto... pero creo que la concatenacion es con el signo +, o al menos asi es en SQLServer

Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #25 (permalink)  
Antiguo 11/08/2007, 07:33
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 18 años
Puntos: 6
Re: Sentencia SQL que no me sale

Cita:
Iniciado por lacasadelhard Ver Mensaje
MMM LA SENTENCIA FUNCIONO PERO NO ME DIO RESULTADOS

TABLA categories
categories_id int(11)
category_head_title_tag varchar(80) NO POSEE DATOS*1

TABLA categories_description
categories_id int(11)
categories_name varchar(32) POSEE DATOS*2

YO QUIERO PASAR *1 A *1
Esto significa que no se trata de un update, sino de un insert, por que la tabla categories_description no tiene datos que igualar


Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #26 (permalink)  
Antiguo 13/08/2007, 09:54
Avatar de zeusdelolimpo  
Fecha de Ingreso: agosto-2007
Mensajes: 54
Antigüedad: 17 años, 3 meses
Puntos: 0
De acuerdo Re: Sentencia SQL que no me sale

Gracia Gabo77 por la respuesta, creo que para las concatenaciones tambien puedes utilizar el pipe (no se si asi se escribe)"|" es una linea igual que el amperson (ampoco se si asi se escribe) l averdad yo simpre he utilizado el pipe.

salu2
  #27 (permalink)  
Antiguo 14/08/2007, 20:34
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 18 años
Puntos: 6
Re: Sentencia SQL que no me sale

Excelente! esa no me la sabía! :p

Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:45.