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

problemas con actualizacion en inner join

Estas en el tema de problemas con actualizacion en inner join en el foro de Bases de Datos General en Foros del Web. Hola...oigan alguien me puede ayudar con esta consulta.... tengo el siguiente select donde me muestra los datos contenidos en la base de datos en inputs ...
  #1 (permalink)  
Antiguo 29/01/2009, 13:17
 
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 9 meses
Puntos: 0
problemas con actualizacion en inner join

Hola...oigan alguien me puede ayudar con esta consulta....
tengo el siguiente select donde me muestra los datos contenidos en la base de datos en inputs

Código HTML:
$result=mysql_query("SELECT p.personaPrimerApellido, p.personaSegundoApellido, p.personaNombre, p.personaGenero, p.personaEstadoCivil, p.personaFechaNacimiento, p.personaLugarNacimiento, p.personaCURP, p.personaFoto, p.personaNombreCalle, p.personaNumeroCalle, p.personaEntreCalles, p.personaCodigoPostal, p.personaMunicipio, p.personaEstado, p.personaTelefono, p.personaNumeroTelefono, i.planEstudioID, i.cicloEscolarID, i.inscritosTipo, i.gradoAcademicoID, i.grupoID, i.turnoID, i.matriculaInterna, i.matriculaOficial, i.inscritosEstado, i.inscritosFechaIngreso, i.inscritosUltimaModificacion FROM personas AS p
	INNER JOIN estudiantes AS e ON p.personaID = e.estudianteID 
	INNER JOIN inscritos AS i ON e.estudianteID = i.estudianteID
	WHERE p.personaID =".$_POST["personaID"], $enlace);
la condicion del where es el valor del checkbox que selecciono para que me muestre la informacion del registro correspondiente al id. Ahora lo que no puedo desarrollar es la consulta para actualizar UPDATE, en caso de que yo kiera modificar X dato de los inputs de las tablas personas e inscritos...ya le intente de varias maneras y nada...creo que a esto se le llama actualizacion en cascada...

las tablas se relacionan asi

CREATE TABLE personas (
personaID INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
personaNombre VARCHAR(50) NOT NULL,
personaPrimerApellido VARCHAR(50) NOT NULL,
personaSegundoApellido VARCHAR(50),
personaGenero ENUM('M', 'F') NOT NULL DEFAULT 'M',
personaFechaNacimiento DATE NOT NULL DEFAULT '0000-00-00',
personaLugarNacimiento VARCHAR(50),
personaCURP VARCHAR(18),
personaEstadoCivil ENUM('Soltero', 'Casado') NOT NULL DEFAULT 'Soltero',
personaNombreCalle VARCHAR(100),
personaNumeroCalle INT(11),
personaEntreCalles VARCHAR(100),
personaCodigoPostal INT(11),
personaMunicipio VARCHAR(50),
personaEstado VARCHAR(50),
personaTelefono ENUM('Particular','Celular') NOT NULL DEFAULT 'Particular',
personaNumeroTelefono INT(10),
personaFoto VARCHAR(100),
) ENGINE = InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE estudiantes (
estudianteID INT UNSIGNED NOT NULL PRIMARY KEY,
INDEX (estudianteID),
FOREIGN KEY (estudianteID) REFERENCES personas (personaID) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE inscritos (
estudianteID INT UNSIGNED NOT NULL,
planEstudioID TINYINT (2) UNSIGNED ZEROFILL NOT NULL,
cicloEscolarID INT UNSIGNED NOT NULL,
gradoAcademicoID TINYINT NOT NULL,
grupoID INT UNSIGNED NOT NULL,
turnoID INT UNSIGNED NOT NULL,
matriculaInterna VARCHAR (15),
matriculaOficial VARCHAR (15),
inscritosTipo enum ('Regular','Repeticion','Oyente','Materias sueltas') NOT NULL DEFAULT 'Regular',
inscritosFechaIngreso DATE NOT NULL DEFAULT '0000-00-00',
inscritosUltimaModificacion datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
inscritosEstado enum ('Habilitado','Deshabilitado') NOT NULL DEFAULT 'Habilitado',
PRIMARY KEY (estudianteID, planEstudioID),
INDEX (estudianteID),
INDEX (planEstudioID),
INDEX (cicloEscolarID),
INDEX (grupoID),
INDEX (turnoID),
FOREIGN KEY (estudianteID) REFERENCES personas (personaID) ON DELETE RESTRICT ON UPDATE RESTRICT,
FOREIGN KEY (planEstudioID) REFERENCES programas_academicos (programaAcademicoID) ON DELETE RESTRICT ON UPDATE RESTRICT,
FOREIGN KEY (cicloEscolarID) REFERENCES ciclos_escolares(cicloEscolarID) ON DELETE RESTRICT ON UPDATE RESTRICT,
FOREIGN KEY (grupoID) REFERENCES grupos (grupoID) ON DELETE RESTRICT ON UPDATE RESTRICT,
FOREIGN KEY (turnoID) REFERENCES turnos (turnoID) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB DEFAULT CHARSET=latin1;

el problema es que no puedo actualizar si modifico algun registro de cualquiera de las tablas :S...
  #2 (permalink)  
Antiguo 29/01/2009, 13:23
 
Fecha de Ingreso: enero-2009
Mensajes: 4
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: problemas con actualizacion en inner join

lo eh estado intentando asi...pero nada...alguien me puede ayudar =(

$result = mysql_query("UPDATE personas AS p
INNER JOIN estudiantes AS e ON p.personaID=e.estudianteID
INNER JOIN inscritos AS i ON e.estudianeID = i.estudianteID
SET p.personaPrimerApellido='".$_POST["personaPrimerApellido"]."', p.personaSegundoApellido='".$_POST["personaSegundoApellido"]."', p.personaNombre='".$_POST["personaNombre"]."', p.personaGenero='".$_POST["personaGenero"]."', p.personaEstadoCivil='".$_POST["personaEstadoCivil"]."', p.personaFechaNacimiento='".$_POST["personaFechaNacimiento"]."', p.personaLugarNacimiento='".$_POST["personaLugarNacimiento"]."', p.personaCURP='".$_POST["personaCURP"]."', p.personaFoto='".$_POST["personaFoto"]."', p.personaNombreCalle='".$_POST["personaNombreCalle"]."', p.personaNumeroCalle='".$_POST["personaNumeroCalle"]."', p.personaEntreCalles='".$_POST["personaEntreCalles"]."', p.personaCodigoPostal='".$_POST["personaCodigoPostal"]."', p.personaMunicipio='".$_POST["personaMunicipio"]."', p.personaEstado='".$_POST["personaEstado"]."', p.personaTelefono='".$_POST["personaTelefono"]."', p.personaNumeroTelefono='".$_POST["personaNumeroTelefono"]."', i.planEstudioID='".$_POST["planEstudioID"]."', i.cicloEscolarID='".$_POST["cicloEscolarID"]."', i.inscritosTipo='".$_POST["inscritosTipo"]."', i.gradoAcademicoID='".$_POST["gradoAcademicoID"]."', i.grupoID='".$_POST["grupoID"]."', i.turnoID='".$_POST["turnoID"]."', i.matriculaInterna='".$_POST["matriculaInterna"]."', i.matriculaOficial='".$_POST["matriculaOficial"]."', i.inscritosEstado='".$_POST["inscritosEstado"]."', i.inscritosFechaIngreso='".$_POST["inscritosFechaIngreso"]."', i.inscritosUltimaModificacion = NOW()
WHERE p.personaID='".$_POST["personaID"]."'AND e.estudianteID='".$_POST["personaID"]."'AND i.estudianteID='".$_POST["personaID"], $enlace);
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 14:22.