Busca com junção de duas tabelas
Boa noite, tenho 2 tabelas e preciso recuperar informações delas, as estruturas são:
tabela anuncio
id | estado_id | cidades | titulo | tipo
1 | 4 | 2369, 2341 | Anúncio teste | audio
2 | 4 | 2369, 1245 | Anúncio teste 2 | audio
3 | 28 | | Anúncio Nacional | audio
tabela ordem_exibicao
id | anuncio_id | cidade | status
1 | 1 | 2369 | 1
2 | 1 | 2341 | 0
3 | 2 | 2369 | 0
4 | 2 | 1245 | 0
5 | 3 | 0 | 0
O que eu preciso é o seguinte, quando o usuário acessar de determinada cidade, no caso 2369, preciso que execute o primeiro anúncio com status 0 da tabela ordem_exibição e assim que for tocado, altera o seu status para 1 indicando que o mesmo já foi visualizado. O problema é que existem os anúncios que são nacionais, e com isso não estou conseguindo fazer a busca.
A minha query está sendo:
SELECT
a.id,
a.titulo,
o.id AS idExibicao,
o.status
FROM anuncio AS a
INNER JOIN ordem_exibicao AS o ON ( a.id = o.anuncio_id )
WHERE
a.cidades LIKE '%2369%' AND a.tipo = 'audio' AND o.status = 0 AND o.cidade = 2369 OR o.cidade = 0 LIMIT 1
Fazendo essa consulta, ele retorna o primeiro anúncio baseado na cidade, se é 2369 ou 0, não está definindo pelo status que seria o que eu necessitaria. Como fazer essa consulta?
Discussão (2)
Carregando comentários...