Te dan error las dos que muestras, no?
Esto da las solicitudes de la ciudad $id_ciudad
Código MySQL:
Ver original s.nombre,
s.apellido,
r.id_local
WHERE s.id_ciudad
=$id_ciudad
;
Esto da las solicitudes de la ciudad $id_ciudad y los locales que
SI han contestado.
Para obtener los que NO han contestado, faltan datos, no se puede obtener de una tabla cosas que NO estan en ella...
Para solucionar lo que pides falta una tabla locales, con
TODOS los locales, y estos supongo que estarán en una ciudad....
Tabla Locales
id_local
id_ciudad
datos...
Código MySQL:
Ver original s.nombre,
s.apellido,
l.id_local
WHERE s.id_ciudad
=$id_ciudad
;
Esto nos daria una lista delas solicitudes de $id_ciudad repetidas para cada local de $id_ciudad.
Ahora vinculamos las respuestas
Código MySQL:
Ver original s.nombre,
s.apellido,
l.id_local
LEFT JOIN respuesta r
ON s.id_solicitud
=r.id_solicitud
AND r.id_local
=l.id_local
WHERE s.id_ciudad
=$id_ciudad
Uso left join para seguir con todos los registros de la consulta anterior, y luego filtro por los que
no tienen respuesta.
Si he entendido bien lo que intentas esto lo soluciona, si no lo he entendido deberias explicarte mas y mejor....