Comunidad de diseño web y desarrollo en internet online

Pregutna sobre SQL query

Citar            
MensajeEscrito el 24 Jul 2010 09:45 pm
Buenas tardes, tengo una cosulta sobre este tema, estoy penas empezando con bases de datos y a hacer los query para despues usarlos en php, la cuestión es:

Tengo una serie de tablas: categorias, categoria_trabajo, trabajos, usuarios y trabajos_usuarios.

categorias, trabajos y categoria_trabajos tienen una relacion uno a muchos.

usuarios, trabajos y trabajos_usuarios tienen una relacion uno a muchos.

La cuestion es que quiero generar una consulta que me traiga los valores de: usuarios, trabajos y categorias ya hice el query para relacionar cuantos trabajos tiene cada usuario,pero me gustaria que trajera el nombre de la categoría.

lo que tengo por ahora es esto:

Código MySQL :

SELECT
  usuarios.usuario_id,
  trabajos.trabajos_id,
  usuarios.nombre,
  trabajos.titulo
FROM 
  usuarios, trabajos_usuarios, trabajos
WHERE
  usuarios.usuario_id = trabajos_usuarios.usuario_id
  AND usuarios.usuario_id = 2
  AND trabajos.trabajos_id = trabajos_usuarios.trabajos_id


Con este codigo relaciono los trabajos que tenga cada usuario y me genera una tabla con el nombre del usuario y el titulo del trabajo, como dije antes, me gustaría tambien traer el nombre de la categoria que esta en otra tabla.

Saludos y gracias de antemano

Por tutos50

35 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Jul 2010 10:06 pm
Como y con que tabla se relaciona categoria?

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 25 Jul 2010 12:01 am

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 25 Jul 2010 04:28 am
Gracias Maikel e Inyaka, Maikel, para que me entiedas mejor posteo la url de la imágen con el diagrama de la db.



Creo que la pregunta, como para ver si me explico mejor, es si puedo llamar los datos de otra tabla, en este caso la tabla categorias, sin estar relacionada a las tablas donde hago la consulta, las cuales en este caso son: trabajos y usuarios.


Inyaka, muchas gracias por el link me va a servir demasiado ahora que estoy empezando enserio con el tema de la programación.

Saludos

Por tutos50

35 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Jul 2010 07:13 pm
Prueba con JOIN:
http://dev.mysql.com/doc/refman/5.0/es/join.html
o con consultas anidadas:
http://dev.mysql.com/doc/refman/5.0/en/subqueries.html

Por Lokhi

4 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Jul 2010 07:09 am

Código MySQL :

SELECT 
   u.usuario_id,
   t.trabajos_id,
   u.nombre,
   t.titulo,
   c.*
FROM usuarios u 
INNER JOIN trabajos_usuarios tu ON u.usuario_id = tu.usuario_id
INNER JOIN trabajos t ON t.trabajos_id = tu.trabajos_id
INNER JOIN categoria_trabajos ct ON ct.trabajos_id = t.trabajos_id
INNER JOIN categoria c ON c.categoria_id = ct.trabajos_id
WHERE u.usuario_id = 2


Si tienes datos reales y suficientes prueba esa consulta. Luego prueba con LEFT JOIN en vez de INNER JOIN.

* Sé cuando usar cada uno, solo quiero tú veas la diferencia.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 02 Ago 2010 01:21 pm
Ok, muchas gracias a los dos, pruebo y comento.

Por tutos50

35 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.