Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Relaciones De Tablas En Mysql?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Relaciones De Tablas En Mysql? 
 
Buenas tardes, he estado echando un ojo por esta sección y no he encontrado algún ejemplo que me sirviese de ayuda... el caso es que hasta ahora todas las consultas que realizaba sobre mysql generalmente eran sobre una sola tabla... Ahora ando probando cosillas nuevas y estoy dividiendo algunas tablas en varias. El caso es que ando un poco perdido sobre el tema y después de googlear he leído que MySQL no soporta relaciones, en cambio, hay truquillos para realizar las mismas funciones con los Joins...

Pongo un ejemplo básico que es sobre el que estoy realizando las pruebas para ver si podéis echarme un cable sobre como abordarlo y sobre todo para encaminarme y saber que buscar.

TablaClientes(ID,Nombre)

TablaTrabajos(ID,ID_Cliente)

De estas dos tablas, me gustaría poder sacar una lista con todos los Trabajos de Forma que viese todos los campos, no se si me explico... que al final viese TablaTrabajos.ID,TablaClientes.Nombre ya que al fin y al cabo es lo interesante.... creo que esto es bastante básico, pues todos los CMS y otros proyectos que veo, lo hacen parecido(en cuanto a la organización de la base de datos), lo que no encuentro es la forma de relacionar ID_Cliente con ID para poder verlos en una tabla...

Algún tipo de ayuda, o tutorial sobre este tipo de consultas??? ando algo perdido! (espero que me haya explicado bien)

Edito, si sirve de ayuda, desde el punto de vista de un novato seria algo asi:

SELECT *
FROM PartesDeTrabajo, Clientes
WHERE PartesDeTrabajo.IDCliente = Clientes.ID


Pero esto no funciona....
Gracias de antemano, como siempre!
 



 
última edición por CanihoJR el Viernes, 09 Enero 2015, 18:46; editado 1 vez 
CanihoJR - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Relaciones De Tablas En Mysql? 
 
Me autocontesto por si a alguien más le sirve, con un JOIN básico, sirve... solo que en mi base de datos no tenia ninguna coincidencia y estaba volviéndome loco al hacer las pruebas.... (llevaba con esta tonteria semanas...)

info encontrada en: http://ariel.esdebian.org/27200/sql-join-basico
 



 
CanihoJR - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Relaciones De Tablas En Mysql? 
 
Citar:
he leído que MySQL no soporta relaciones


Eso no es cierto. MySQL soporta relaciones desde hace mucho tiempo. Lo que pasa es que, como en todas partes tienes que activarlas. Por suerte es extremadamente sencillo:
Crea tus tablas con el motor de almacenamiento InnoDB, no el MyIsam que lleva por defecto. Con InnoDB tienes relaciones, índices múltiples y no recuerdo qué montón de cosas más.
A partir de ahí símplemente genera las relaciones al crear las tablas con Foreign Keys y listo.

Saludos
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Relaciones De Tablas En Mysql? 
 
Citar:
hay truquillos para realizar las mismas funciones con los Joins...


Vamos a ver, no confundamos:
Join no tiene nada que ver con las relaciones. Join es una cláusula dentro de la sentencia SELECT que permite mostrar campos de dos o más tablas a través de la equivalencia o comparación entre ellas. Es algo que implementa el lenguaje SQL. Una manera de consulta, vamos.

Lo que tú llamas relaciones es lo que se llama "Integridad Referencial" de una base de datos.
¿En qué consiste? pues en una serie de mecanismos dentro de la base de datos que se aseguren de que si en la tabla A se hace referencia a un campo de la tabla B, no pueda haber ningún registro con referencias erróneas.
Eso implica que si el campo en cuestión de la tabla B se modifica o elimina, todas las entradas de la tabla A que lo referencian se

a) modifiquen o eliminen igualmente o
b) sean establecidos a un valor predeterminado o
c) simplemente se restrinja e impida la modificación

Todo ello de manera automática y transparente. La base de datos se encarga de ello.
Bases de datos más simples como SQLite, llevan o no implementado el mecanismo de una forma total o parcial según sean compiladas.
En SQLite, en concreto, si lo lleva compilado sólo tienes que activarlo mediante una instrucción PRAGMA.

MySQL, como base de datos más completa, implementa varios "motores" de datos que pueden contemplar o no la integridad referencial. Así, el motor de datos MyISAM, que es el por defecto en MySQL no soporta integridad referencial. Almacena cada tabla en un fichero diferente y los indices correspondientes a esa tabla en otro (u otros, no recuerdo ahora). ¿Qué ventaja tiene? Básicamente la velocidad.

Hay varios más, pero parece que se ha impuesto InnoDB -que es el motor de datos que yo uso prácticamente siempre- que sí contemplan la integridad referencial. InnoDB almacena todas las tablas e índices en un mismo fichero de disco que va ampliándose según sea necesario. Las ventajas son innumerables, desde los tipos y calidad de los índices que puedes usar hasta, y sobre todo, la integridad referencial.

Si a todo esto añades que MySQL te permite "mezclar" los motores de datos, es decir, puedes tener en la misma base de datos unas tablas con MyISAM y otras con InnoDB, según necesites, pues mejor que mejor.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Mostrar Consulta De Relaciones Mysql Fenriz07 Bases de Datos 0 Viernes, 20 Agosto 2010, 17:04 Ver último mensaje
Fenriz07
No hay nuevos mensajes Consulta Mysql Donde Una Tabla Tiene Vario... aratar79 Bases de Datos 21 Domingo, 30 Septiembre 2012, 21:33 Ver último mensaje
aratar79
No hay nuevos mensajes Como Puedo Relacionar Tablas En Mysql O Po... jousseph Bases de Datos 24 Sabado, 01 Diciembre 2012, 17:18 Ver último mensaje
mg_arep19
No hay nuevos mensajes Obtener Lista De Tablas De Sqlite3 Postgre... tincho Bases de Datos 4 Domingo, 21 Febrero 2016, 14:01 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron