Autor Tema: [Ayuda] Relacionar tablas  (Leído 285 veces)

Desconectado nmartin021

  • PHPero Avanzado
  • ****
  • Mensajes: 250
  • Karma: 9
    • Ver Perfil
[Ayuda] Relacionar tablas
« en: 11 de Noviembre de 2011, 03:09:44 am »
Hola!

Pues bien, tengo un sistema de noticias con categoría de la noticia, sección y autor, y esta query:
Código: [Seleccionar]
$q = 'SELECT t.id, t.title, g.name, u.nick, c.urlname FROM users AS u, news AS t, sections AS g, categories AS c WHERE g.cat = c.id && g.id = t.group && t.author = u.id';
Pero el problema es que en vez de salir:
Código: [Seleccionar]
[Titulo] - por [usuario] en [sección] ([categoría])
Sale:
Código: [Seleccionar]
Algo - por alguien en sección (categoría)
Algo - por alguien en sección (otra categoría)
Es decir, sale 2 veces la misma notícia, sólo que en distinta categoría y SIEMPRE en la misma sección, y no debería ser así.

Saludos

Comunidad PHPeros

[Ayuda] Relacionar tablas
« en: 11 de Noviembre de 2011, 03:09:44 am »

Desconectado elfokalin

  • PHPerit@
  • *
  • Mensajes: 1
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[Ayuda] Relacionar tablas
« Respuesta #1 en: 11 de Noviembre de 2011, 19:20:24 pm »
hola man, bueno tu script nio es el adecuadopor eso estas teniendo duplicidad al sacar la información aqui te dejo el script de como puede ser no lo he probado por el time...

Lo que hago primero es un inner join entre la cate y secc lyuego obtengp una tabla temp. y hago un inner join con news ..y por ultimo una sub-consulta para obtener el name del user, espero te sirva ...Saludos

$sql = "Select tmp.pk_categoria as categoria,
 tmp.name as name_categoria,   
 tmp.pk_seccion as pk_seccion,
 tmp.name as name_seccion
 tmp_news.name as name_news,
 (Select name From users pk_user = tmp_news.fk_pk_users) as user_name,
 tmp_news.fk_pk_user as fk_pk_user,
 From (Select tmp_cat.pk_categoria as categoria,
 tmp_cat.name as name_categoria,   
 tmp_sec.pk_seccion as pk_seccion,
 tmp_sec.name as name_seccion
 From categoria tmp_cat inner join sections tmp_sec on tmp_cat.pk_categoria = tmp_sec.fk_pk_categoria) as tmp inner join news tmp_news
 on tmp.pk_seccion = tmp_news.fk_pk_seccion"

Desconectado nmartin021

  • PHPero Avanzado
  • ****
  • Mensajes: 250
  • Karma: 9
    • Ver Perfil
Re:[Ayuda] Relacionar tablas
« Respuesta #2 en: 12 de Noviembre de 2011, 02:28:02 am »
@elfokalin:
No, no es esa la solución... el problema es que las noticias se habían duplicado en la base de datos.

Tema solucionado - por favor cierren.

Saludos