Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ronaldo Neves

Busca com junção de duas tabelas

Recommended Posts

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente

 

a.cidades LIKE '%2369%' AND a.tipo = 'audio' AND o.status = 0 AND o.cidade in ( 2369 , 0) LIMIT 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.