Primero tienes que hacer un analisias de las relaciones....
tblzona 1 -- n
tbllocal: relación es uno a n es decir un bar tiene una zona pero una zona puede tener n bares
tblactividad n -- m
tbllocal: relación
n a
m ya que un bar puede realizar
n actividades y cada actividad la realizan
m bares.
Lo ves claro? Para almacenar una relacion n:m necesitas una tabla intermedia o tabla de relación.
tblactividad
id_Actividad
str_Descripcion
tblzona
id_Zona
str_Nombre
tbllocal
id_Local
str_Nombre_Local
id_Zona
(fijate que he quitado el campo id_Actividad, ya que solo podías almacenar
una actividad y necesitas
n)
tblRelLocalActividad
id_RelLocalActividad
id_Actividad
id_Local
Aqui si puedes almacenar
n actividades para un local y
m locales para una activiadad. El campo id_RelLocalActividad es innecesario puesto que puede substituirse por una PK compuesta por los otros dos campos, pero yo prefiero crear esa PK simple y agregar un indice único compuesto de los otros dos campos.
Una vez corregida la estructura de datos
Código MySQL:
Ver originalSELEC l.str_Nombre_Local,
z.str_Nombre
Esto dará los bares de la zona X que realizen la actividad Y.
Modificando la clausula WHERE puedes hacer lo que quieras....
Puedes agregar otro JOIN con
tblactividad si necesitas usar el nombre de la actividad.
Agur