Código para relacionar tablas Mysql

Tengo 3 tablas. 1.Empresa: idempresa, idcontacto, nom_empresa, direccion 2.contactos:idcontacto, nom_contacto, mail 3. Empresa_contacto: idempresa, idcontacto, esta ultima la tengo como una tabla puente(conexion). Quiero saber como relacionarlas entre si y que codigo usar. Para poder finalmente usar una consulta q me muestre el informe deseado que no es otra cosa q mostrar todos los contactos que tiene la empresa(usuario)
Agradezco y me puedan ayudar, ya me estoy volviendo loco.
Respuesta
1
¿Tienes más de un contacto por empresa? Si sólo tienes uno, la tercera tabla te sobra y por eso te estás volviendo loco. Si te sobra con algo así bastaría:
select em.nom_empresa, co.nom_contacto, co.mail
from empresa em, contactos co
where em.idcontacto=co.idcontacto
Si por el contrario tienes más de un contacto por empresa, te sobra el campo idcontacto en la tabla Empresa y la consulta sería algo así:
select em.nom_empresa, co.nom_contacto, co.mail
from empresa em, contactos co, empresa_contacto ec
where em.idempresa=ec.idempresa
and ec.idcontacto=co.idcontacto
Gracias Experto, ya lo había solucionado del segundo modo como lo explicas, pero ahora mis dudas son respecto a las consultas. Pues me funcionan bien. La cuestión es que la base de datos refiere a que una empresa(en este caso el usuario) tiene muchos contactos y hasta hay todo bien. Pero como agrego una empresa a un contacto o como se que idcontacto se genera cuando inserto un nuevo contacto. La idea es poder hacer algo más o menos como una página social donde un contacto acepta el otro y viceversa.
Finalmente muchas gracias por tu apoyo.
En MySQL tienes la función LAST_INSERT_ID(). Esta función te devuelve el último ID insertado en una tabla siempre que sea un campo autonumérico el que gestione el ID. Puedes hacer un SELECT LAST_INSERT_ID() FROM DUAL después de tu INSERT para recuperar el ID que MySQL te ha creado. Creo que aplicando esta función se solucionan todas tus preguntas.
Gracias experto...
Muy bueno tu aporte... mil gracias
Ahora solo tengo una inquietud. ESE LAST INSERT QUE ME COMENTAS, ¿En caso de que varios contactos o usuarios se estén registrando en la página web si funcionara perfecto? ¿Por ejemplo si yo me estoy registrando al mismo tiempo que otros en la base de datos cual de esos usuarios sera el ultimo? ¿Habrá algún problema hay? ¿Qué me aconsejas? He probado y mis datos están dudosos
Gracias por tu tiempo y que Dios te lo multiplique por miles...
Siempre que tengas una conexión distinta para cada usuario te funcionará perfectamente, ya que lo que hace es recuperar el último ID que ha creado en la sesión en curso con MySQL. Si estás usando Tomcat o algún servidor de aplicaciones que use pool de conexiones también suele funcionar bien, aunque no los he probado todos pero yo suelo trabajar con los pooles de conexión de J2EE y funciona correctamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas