dudilla con sql

Hola a todos, estoy un poco aburrido y estoy montando una pagina con php+mysql. Ya he creado las tablas, he creado llaves primarias y tal. Ahora tengo una duda y es:

Tengo un tabla llamado coche, que contiene los campos id y categoria. Tengo otra tablas que se llama categoría con un campo id. Mi duda es para relacionar el campo coche.categoria con categoria.id , debería de hacer un inner join no?, y asi con esto controlo que la categoria que meta en la tabla coches.categoria debe de existir previamente en categoria.id.

Bueno me he hecho un lio explicandolo, pero creo que se entiende
Buenas, hace mucho que vi un poco de mysql, pero en SQL seria lo siguiente:

- INNER JOIN para relacionarlas si todos los registros de la tabla coches tendran una categoria
- LEFT JOIN para relacionarlas si solo algunos de los registros van a tener categoria

Imagino que en mysql sera igual o muy similar.

Saludos
Para hacer una consulta usando las 2 tablas deberas relacionar dichas tablas con un left o inner dependiendo del caso, pero si lo que quieres es crear un "vinculo" entre las 2 tablas, debes hacer una foregin key (clave foranea), esto impediria que a coches pusieras una categoria inexistente p.ej.
deathline escribió:Para hacer una consulta usando las 2 tablas deberas relacionar dichas tablas con un left o inner dependiendo del caso, pero si lo que quieres es crear un "vinculo" entre las 2 tablas, debes hacer una foregin key (clave foranea), esto impediria que a coches pusieras una categoria inexistente p.ej.


Exacto. Yo añadiría que concretamente en MySQL debes usar tablas InnoDB o de lo contrario se pasará las restricciones de integridad referencial por el forro.
Muchas gracias por las respuestas, entonces lo que haré es crear las foreign keys, y miraré lo que comentas sobre usar tablas InnoDB
4 respuestas