/Abajo del codigo explico mi problema/
Estoy con un proyecto una especie de blog, y en el index muestro las 2 ultimas noticias que en el titulo muestra su el usuario que la creo
para lo que utilizo la sentencia
SELECT noticia.id, 'user-id', usuario.id, fecha, titulo, descripcion, url, nick, nivel FROM noticia INNER JOIN usuario ORDER BY fecha DESC limit 1;
y
SELECT noticia.id, 'user-id', usuario.id, fecha, titulo, descripcion, url, nick, nivel FROM noticia INNER JOIN usuario ORDER BY fecha DESC limit 1,1;
la base de datos es esta:
CREATE TABLE db__proyecto
.usuario
(id
INT( 3 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,admin
int( 1 ) NOT NULL ,nick
VARCHAR( 15 ) NOT NULL ,nombre
VARCHAR( 25 ) NOT NULL ,apellido
VARCHAR( 35 ) NOT NULL ,password
VARCHAR( 60 ) NOT NULL ,fecha-nac
VARCHAR( 10 ) NOT NULL ,pais
VARCHAR( 15 ) NULL ,ciudad
VARCHAR( 30 ) NULL ,mail
VARCHAR( 30 ) NOT NULL ,link
VARCHAR( 150 ) NULL ,link-desc
VARCHAR( 150 ) NULL ,firma
VARCHAR( 300 ) NULL ,fecha-registro
INT( 11 ) NOT NULL ,nivel
VARCHAR( 25 ) NOT NULL ,UNIQUE (nick
,mail
)) ENGINE = InnoDB
CREATE TABLE db__proyecto
.noticia
(id
INT( 4 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,fecha
INT( 11 ) NOT NULL ,titulo
VARCHAR( 45 ) NOT NULL ,descripcion
VARCHAR( 130 ) NOT NULL ,cuerpo
VARCHAR( 500 ) NOT NULL ,opinion
VARCHAR( 500 ) NOT NULL ,url
VARCHAR( 150 ) NULL ,url2
VARCHAR( 150 ) NULL ,url3
VARCHAR( 150 ) NULL ,user-id
INT( 3 ) NOT NULL ,img
VARCHAR( 100 ) NOT NULL) ENGINE = InnoDB
ALTER TABLE noticia
ADD INDEX ( user-id
);
ALTER TABLE noticia
ADD FOREIGN KEY ( user-id
) REFERENCES db__proyecto
.usuario
(id
) ON DELETE CASCADE ON UPDATE CASCADE;
CREATE TABLE db__proyecto
.comentario
(id
INT( 5 ) NOT NULL AUTO_INCREMENT ,cuerpo
VARCHAR( 500 ) NOT NULL ,fecha
INT( 11 ) NOT NULL ,user-id
INT( 3 ) NOT NULL ,tipo
INT( 1 ) NOT NULL ,PRIMARY KEY ( id
)) ENGINE = InnoDB
ALTER TABLE comentario
ADD INDEX ( user-id
);
ALTER TABLE comentario
ADD FOREIGN KEY ( user-id
) REFERENCES db__proyecto
.usuario
(id
) ON DELETE CASCADE ON UPDATE CASCADE;
Buen el problema que tengo es que al mostrar la noticia y el usuario que la creo, no me muestra el verdadero usuario, sino que, lo que creo que hace es una lista de usuarios y le asigna cualquier noticia (en orden descendente por la fecha) sin respetar el user-id
lo mismo me pasa cuando veo todas las noticias que hay
SELECT noticia.id, fecha, titulo, nombre, apellido, nick FROM noticia INNER JOIN usuario ORDER BY fecha DESC;
al utilizar esta sentencia me (habiendo 2 usuarios y 2 noticias creados en la base de datos) me muestra 4 noticias noticia1-usuario1, noticia1-usuario2, noticia2-usuario2 y noticia2-usuario1
algo que tambien me parece raro, alguien me podria ayudar??
pd: no he puesto
por que se ve fatal la letra