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

sentencia compleja incluye WHERE NOT IN

Estas en el tema de sentencia compleja incluye WHERE NOT IN en el foro de Mysql en Foros del Web. Hola, no consigo hacer que funcione una cosa. Me explico: 1.- Tengo una tabla de grupos, donde se detalla el grupo por defecto al que ...
  #1 (permalink)  
Antiguo 09/02/2010, 09:49
Avatar de Batusai  
Fecha de Ingreso: enero-2005
Ubicación: Málaga -Andalucía- España
Mensajes: 130
Antigüedad: 14 años, 11 meses
Puntos: 1
Pregunta sentencia compleja incluye WHERE NOT IN

Hola,

no consigo hacer que funcione una cosa. Me explico:

1.- Tengo una tabla de grupos, donde se detalla el grupo por defecto al que pertenece cada usuario (user_ID).

2.- Saco el user_ID de la tabla donde tengo los usuarios.

3.- Quiero insertar una línea predefinida en la tabla de grupos a todos los usuarios que me han quedado sin grupo por defecto, asignándoles uno elegido por mi.

No consigo crear una sentencia que lo haga. Sería del tipo:
Código:
INSERT INTO user_default_group (user_ID, group_ID) WHERE NOT IN users;
Esa es la idea general pero esto no me funciona:
Código:
INSERT INTO user_default_group (user_ID, group_ID) VALUES ((SELECT user_ID FROM users), 70) WHERE NOT IN users.user_ID;
El group_ID va a ser siempre uno fijado por mi, pero en user_ID deberían ir copiandose todos y cada uno de esos usuarios que no tienen asignado un grupo de usuario por defecto.

¿Puede alguien ayudarme?
  #2 (permalink)  
Antiguo 09/02/2010, 10:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.321
Antigüedad: 12 años
Puntos: 2653
Respuesta: sentencia compleja incluye WHERE NOT IN

Cuando se trata de un INSERT proveniente de un SELECT no se usa el VALUE, sino la forma INSERT .. SELECT ..., la cual puedes ver en el Manual de Referencia (13.2.7. Sintaxis de SELECT);
Código MySQL:
Ver original
  1. INSERT INTO user_default_group (user_ID, group_ID)
  2. SELECT user_ID, 70  
  3. FROM users
  4. WHERE NOT IN (SELECT user_ID FROM user_default_group);
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: sentencia
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 01:51.