Necesito información al realizar consultas generales con varias tablas de la base de datos en php

Hola.. ¿cómo podría hacer para hacer una consulta general (los mismos campos) pero con varias tablas?

1 respuesta

Respuesta
1
Tienes que hacer un "join"
select tabla1.campo11,tabla2.campo21 from tabla1,tabla2 where tabla1.campo12= tabla2.campo22
Al hacer la consulta de 2 tablas, debe haber una relación entre ellas, por ejemplo la tabla libros y la tabla autores:
La tabla libros tendrán por ejemplo los campos:
libro_id
titulo
autor_id
Y la tabla autor:
autor_id
Nombre
Apellidos
El campo autor_id de la tabla libros es su la clave externa.
Y el campo autor_id en la tabla autor es su clave primaria, por tanto la consulta quedaría:
select titulo, nombre,apellidos from libros,autor where libros.autor_id=autor.autor_id
ok son unas 20 tablas... mas o menos... =(
Mira las tablas contienen este campo..
Tabla 1:
Para
suéltalo
fecha
id
Tabla 2:
Para
suéltalo
fecha
id
En donde estas las quiero ordenar por fecha y hora.. ya que en estas todas están mostradas así
¿Y por qué no has metido todo en la misma tabla?
¿Por qué cada tabla pertenece a una clasificación de colegios... es decir cada tabla son comentarios de colegios distintos, ahora lo que quiero es que muestre todos los comentarios de todos los colegios en una consulta, me explico?
Pero el diseño de la base de datos no es muy correcto (no respeta la teoría relacional), ya que no te permite hacer lo que me comentas, no se pueden combinar las tablas en una sola consulta, tendrías que hacer una consulta por tabla.
Yo habría hecho una tabla de colegios y otra tabla con dichos comentarios, pero de todos los colegios. Seria algo así:
Tabla colegios:
Id
nombre_colegio
Tabla comentarios:
Id
Para
Suéltalo
Fecha
colegio_id
El campo colegio_id seria el que me dice de que colegio es el comentario.
Y la consulta quedaría:
select * from colegios,comenterios where colegios.id=colegio_id order by colegio_id
Y me listaría todos los comentarios ordenados por colegios
Ok yo tengo una consulta para cada colegio... ¿entonces si lo hago así como me lo recomiendas entonces igual puedo hacer la consulta por cada colegio?
¿Es decir en que en cada sección voy a hacer la consulta y ordenarla por colegio_id para que cada colegio tengo su consulta de comentarios y a la vez tenga otra sección con todos los comentarios juntos? (Esta ultima sección la quiero ordenar por fechas)
Si lo haces como te he comentado antes puedes hacer lo siguiente:
Consulta por colegio:
select * from comentarios where colegio_id=$id order by fecha
Con esto tengo todos los datos del colegio cuyo id sea $id ordenados por fechas.
Si quieres tener una sección con todos los comentarios de todos los colegios:
select * from colegios,comenterios where colegios.id=colegio_id order by fecha
Con esta consulta también tendrías acceso a los datos de los colegios (como su nombre, etc), si no te hace falta haz el select de los comentarios solamente:
select * from comentarios order by fecha
Y así los tienes ordenados por fechas, si quieres que salgan primero los de las fechas más recientes por order by fecha desc
Ok lo intentare y mañana te respondo... muchas gracias por la ayuda
Estamos para echar una mano

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas