Ir para conteúdo
Fórum Script Brasil
  • 0

Um Select Pode Pesquisar 3 Colunas?


py2tz

Pergunta

Errei, não é coluna e sim TABELA

Tenho um select que faz pesquisa numa TABELA e queria expandir para 3 TABELAS do BD, ou seja um mesmo nome pesquisado ele busca na Tabela OC, Tabela OM e Tabela FM

Esta assim

sqlstmt = "SELECT top 70 * FROM OC WHERE id like '%"& id &"%' and Frequencia Like '%"& Frequencia &"%' and Horario like '%"& Horario &"%' and Radio like '%"& Radio &"%' and Cidade like '%"& Cidade &"%' and Estado like '%"& Estado &"%' and Pais like '%"& Pais &"%' order by Frequencia ASC"

Tentei assim, mas não deu

sqlstmt = "SELECT top 70 * FROM OC and OM and FM WHERE id like '%"& id &"%' and Frequencia Like '%"& Frequencia &"%' and Horario like '%"& Horario &"%' and Radio like '%"& Radio &"%' and Cidade like '%"& Cidade &"%' and Estado like '%"& Estado &"%' and Pais like '%"& Pais &"%' order by Frequencia ASC"

Tentei tambem com OR mas tambem não foi.

Qualquer LUZ será bem vinda

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Seria isso por um acaso?

<% select case OC

case "OC"

%>

<%

sqlstmt = "SELECT top 70 * FROM OC WHERE id like '%"& id &"%' and Frequencia Like '%"& Frequencia &"%' and Horario like '%"& Horario &"%' and Radio like '%"& Radio &"%' and Cidade like '%"& Cidade &"%' and Estado like '%"& Estado &"%' and Pais like '%"& Pais &"%' order by Frequencia ASC"

%>

<% select case OM

case "OM"

%>

<%

sqlstmt = "SELECT top 70 * FROM OM WHERE id like '%"& id &"%' and Frequencia Like '%"& Frequencia &"%' and Horario like '%"& Horario &"%' and Radio like '%"& Radio &"%' and Cidade like '%"& Cidade &"%' and Estado like '%"& Estado &"%' and Pais like '%"& Pais &"%' order by Frequencia ASC"

%>

<% select case FM

case "FM"

%>

<%

sqlstmt = "SELECT top 70 * FROM FM WHERE id like '%"& id &"%' and Frequencia Like '%"& Frequencia &"%' and Horario like '%"& Horario &"%' and Radio like '%"& Radio &"%' and Cidade like '%"& Cidade &"%' and Estado like '%"& Estado &"%' and Pais like '%"& Pais &"%' order by Frequencia ASC"

%>

O que INNER JOIN ?????

Andreia não mistura meus neuronios, já estão a 1000/h

Link para o comentário
Compartilhar em outros sites

  • 0

Fiz do jeito que deu, criei uma página para cada select, triplicou as paginas, mas esta funcionando.

É o famoso jeitinho TROGLODITA do ASP, pra quem ainda não sabe......como eu.....

Obrigado pelas dicas.......

Link para o comentário
Compartilhar em outros sites

  • 0

jesuse!! sai desse codigo que não lhe pertence!! rssss

então, vamos com calma, esquece essa bagunça aí que você escreveu. o que voce quer não é unir as tabelas?? então, o INNER JOIN serve para isso.

Para fazer tal, é necessario que você tenha chaves (campos que sejam iguais nas outras tabelas).

Exemplo:

tabela 1: Nome

codigo_nome | nome

5-------------- | Manuel

7-------------- | Jose

8 ------------- | Ana

tabela 2: Idade

codigo_idade | codigo_nome | idade

1 ------------- | 7 ------------- | 20

2 ------------- | 5 ------------- | 15

3 ------------- | 8 ------------- | 45

Olhando assim eu sei que a Ana tem 45 anos, como??

o codigo_nome da tabela 2 é igual ao codigo_nome da tabela 1. Essa é a ligação, então a consulta ficará:

select n.nome, i.idade from nome n
inner join idade i on i.codigo_nome = n.codigo_nome

blza??

Link para o comentário
Compartilhar em outros sites

  • 0

Olá, voltei,

Estava tentando fazer isso, o tal INNER, criei uma coluna dentro da Tabela OC chamada id_Correio onde leva os numeros da id que estao dentro da Tabela Correio, assim:

Tabela OC

Coluna Coluna Coluna

id id_Correio Radio etc.....

Tabela Correio

Coluna Coluna Coluna

id Endereco Cidade etc.....

Na visualizacao dos dados eu busco os dados da Tabela OC que aparecem beleza, mas não esta aparecendo os dados correspondentes da Tabela Correio que estao os enderecos.

Estava assim antes do INNER:

sql ="SELECT * FROM Correio WHERE Id_Correio=" & pId

Mas não funciona, ALTEREI para o INNER e não sei se esta certo

sql ="SELECT n.OC, i.Correio from OC n inner join Correio i on i.id_Correio = n.id

Aparece os dados da Radio, mas não aparece os dados do endereco. Será que a coluna id_Correio tem que ficar na Tabela Correio em vez da OC?

Apos umas tentativas meu select esta assim agora:

sql ="SELECT n.*, i.* from OC n left join Correio i on i.id_Correio = n.id WHERE id=" & pId

Mas tambem ainda não funciona, não dá erro nenhum, apenas não mostra o endereco da rádio.

Mostra os dados da tabela 1 mas não mostra os dados da tabela 2.

Link para o comentário
Compartilhar em outros sites

  • 0

Opa, desculpa está a me entrometer na conversa, mas pelo que percebi queres pegar informações em 3 tabelas diferentes onde não há campos "japoneses" ( iguais, rssssss)!!!!!

É o seguinte, não é preciso muito para isso, apenas uso 1 conexão com 3 instruções diferentes, tipo:

Set RS = Server.CreateObject("adodb.recordset")
Set RS2 = Server.CreateObject("adodb.recordset")
Set RS3 = Server.CreateObject("adodb.recordset")
SQL = "sua instrução com a tabela OC"
SQL2 = "sua instrução com a tabela OM"
SQL3 = "sua instrução com a tabela FM"
RS.Open SQL,Conn,3,3
RS2.Open SQL2,Conn,3,3
RS3.Open SQL3,Conn,3,3
E agora, como faço para pegar a informação respectiva de cada tabela??? É facil, repara, foi criado 3 recordsets, o RS, RS2 e o RS3. O RS corresponde a tabela um, imagina que tens na tabela OC o campo "nome", na tabela OM o campo "segundo" nome e na tabela FM o campo "ultimo nome", ficaria assim:
var1=RS("nome")
var2=RS2("segundo nome")
var3=RS3("ultimo nome")
Sempre que quiseres "capturar" uma informação em uma das tabelas, apenas utilize o recorset correspondente!! Ok?? Qualquer duvida posta ai!!! Ahh, so uma dica, não se esqueça de finalizar os objectos:
conn.close
conn=Nothing
RS.close
RS=Nothing
RS2.close
RS2=Nothing
RS3.close
RS3=Nothing

Link para o comentário
Compartilhar em outros sites

  • 0

Olá XMAN, seja bem-vindo a briga.....

Fiz conforme a receita do bolo, mas não vai, agora por sinal não aparece nem os dados da tabela 1 chamada OC, muito menos os registros da tabela 2 chamada Correio.

Veja se esta certo, abaixo a pagina inteira, somente tirei os HTML do visual:

Detalhe1, não dá pau nenhum, não aparece erro nenhum, somente não mostra os dados

Detalhe2, Os dados da tabela1 chamada OC possui registro repetidos tipo:

id-1 BBC London

id-2 BBC London

id-3 BBC London

Porem tem dados diferentes nos horarios, dias da semana etc....

Nesta mesma tabela criei uma coluna chamada Id_Correio (Valor NUMERO) alem da couna ID da mesma (valor auto-numeracao) que leva os numeros respectivos da Tabela Correio que para o caso da BBC London tem o numeral Nº 25

Na tabela2 chamada Correio, consta os dados de correspondencia ou seja para todas as BBC London o endereco sempre sera o mesmo, é por isso que tive que montar a tabela Correio, pois somente na BBC London existem 870 Radios, e precisaria digitar o mesmo endereco em todos os registros da Radio BBC London.

<%@ Language=VBScript %>

<% Response.Buffer = true %>

<%

DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "

DSNtemp=dsntemp & "DBQ=" & server.mappath("radio.mdb")

SQL = "SELECT * FROM OC WHERE id=" & pId

SQL2 = "SELECT n.*, i.* FROM OC n INNER JOIN Correio i on i.id_Correio = n.id WHERE id=" & pId

Set RS = Server.CreateObject("adodb.recordset")

Set RS2 = Server.CreateObject("adodb.recordset")

RS.Open SQL, DSNtemp, 3, 3

RS2.Open SQL2, DSNtemp, 3, 3

pId = RS("id")

pId_Correio = RS("Id_Correio")

pRadio = RS("Radio")

pIdioma = RS("Idioma")

pHorario = RS("Horario")

p15mts = RS("15mts")

p16mts = RS("16mts")

pFrequencia = RS("Frequencia")

p22mts = RS("22mts")

p25mts = RS("25mts")

p31mts = RS("31mts")

p41mts = RS("41mts")

p49mts = RS("49mts")

p60mts = RS("60mts")

p75mts = RS("75mts")

p90mts = RS("90mts")

p120mts = RS("120mts")

pStart = RS("startdate")

pEnd = RS("enddate")

varcod = Trim(RS("Comments"))

pComments =Replace(varcod,vbCrlf,"<br>")

eContato = RS2("Contato")

eSite = RS2("Site")

eEndereco = RS2("Endereco")

eCidade = RS2("Cidade")

eEstado = RS2("Estado")

ePais = RS2("Pais")

eCep = RS2("Cep")

eFone = RS2("Fone")

eFax = RS2("Fax")

%>

<%=pRadio%>

<%=p25mts%>

<%=pHorario%>

<%=p15mts%>

<%=pFrequencia%>

<%=p22mts%>

<%=pIdioma%>

<%=pStart%>

<%=pComments%>

<%=eEndereco%>

<%=eEstado%>

<%=ePais%>

<%=eCep%>

<%=eFone%>

<%=eFax%>

<%=Pr_Site%>:

<%=eSite%>

<%

DSNtemp.close

DSNtemp=Nothing

RS.close

RS=Nothing

RS2.close

RS2=Nothing

%>

Link para o comentário
Compartilhar em outros sites

  • 0

Acho que consegui, estava misturando alguma coisa.

Li com mais atencao o tal INNER e percebi que no exemplo havia duas colunas com o mesmo nome em Tabelas diferentes, então cliei mais uma coluna com o mesmo nome da outra, ficando assi:

Tabela1 (Id_Correio)

Tabela2 (Id_Correio)

Aqui coloquei o ex da Anderia no select, e ficou assim:

sql ="SELECT n.*, i.* from OC n inner join Correio_OC i on i.Id_Correio = n.Id_Correio "

Parece que esta funcionando, mas estou fazendo os testes ainda.

Agora o proximo passo vai ser criar o INSERIR DADOS - ALTERAR DADOS, ai vai ser outra briga.

Pessoal, atodos que ajudarm direta e indiretamente, meus agradecimentos ASPIANOS

Até a prróxima

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...