Ir para conteúdo

POWERED BY:

Arquivado

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

marcelocardoso

SQL para busca em 2 tabelas

Recommended Posts

Irmãos!

 

Estou tentando fazer algo para buscar em duas tabelas juntas, mas não sei como.

Em uma tabela somente sei fazer e segue meu código até aonde consegui.

 

SQL = "SELECT * FROM LinksURL WHERE (Descricao LIKE '%" & IDLINK & "%') ORDER BY ID DESC"
Seria essa:

SELECT * FROM LinksCAT WHERE (TipoNome LIKE '%" & IDLINK & "%')

 

Como posso unir as duas SELECT acima numa SO????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente o UNION é o ideal, só completando, para facilitar o entendimento:

 

o UNION combina resultados de query's em outras palavras ele execulta um SELECT DISTINCT que elimina as linhas duplicadas, ele se auto execulta mesmo que não haja linhas de registros duplicadas:

 

Ex:

SELECT Nome, Telefone from Agenda WHERE Nome ='Joao' UNION SELECT Nome, Telefone from Agenda WHERE Nome ='Maria'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jonathan e TED!

 

E seu eu quiser fazer assim, tipo se na busca não for um seja o outro, tipo assim:

 

SQL = "SELECT * FROM LinksURL WHERE (Descricao LIKE '%" & IDLINK & "%' OR UNION SELECT * FROM LinksCAT WHERE (TipoNome LIKE '%" & IDLINK & "%'))  ORDER BY ID DESC"

Tentei assim deste jeito acima, mas está me dando erro na sintaxe.

Podem me ajudar a fazer isso usando o OR

 

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

não pode por dois motivos. só pode ser uzado um where na query e o union só funciona com o mesmo numero de campos selecionados em cada tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz um exemplo com busca em mais de uma tabela da seguinte forma.

 

sql = "select * from search where Cidade like '%" & localidade & "%' and NomeFantasia like '%" & empresa & "%' and Estado like '%" & estado & "%' and RamoDeAtividade like '%" & produto & "%' UNION SELECT * from search1 where Cidade like '%" & localidade & "%' and NomeFantasia like '%" & empresa & "%' and Estado like '%" & estado & "%' and RamoDeAtividade like '%" & produto & "%' order by NomeFantasia asc"

Ele acha os primeiros registros, só que a páginação para vir os outros na tela não está funcionando.

 

O erro é o seguinte:

 

Tipo de erro:

Provider (0x80004005)

Erro não especificado

/ccnovo/buscando.asp, line 14

 

 

<cod><!---#INCLUDE FILE="adovbs.inc"---><% response.buffer = "true" %><html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><meta name="Autor" content="Joabe"><title>Joabe Ribeiro</title></head><body vlink="#0000FF" topmargin="0" marginheight="0"><table border="0" width="100%">  <tr> 	<%Set conn = Server.CreateObject("ADODB.Connection")conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("clientes.mdb")Dim mypage, mypagesizemypage=request.querystring("whichpage")mypagesize=request("pagesize")If  mypage="" then   mypage=1end ifIf  mypagesize="" then  mypagesize=3end if'Cria nossa variável de instrução de SQLDim strSQLDim strWhereDim RS, sql set RS = Server.CreateObject("ADODB.Recordset")localidade = request("localidade")produto = request("produto")estado = request("estado")empresa = request("empresa")sql = "select * from search where Cidade like '%" & localidade & "%' and NomeFantasia like '%" & empresa & "%' and Estado like '%" & estado & "%' and RamoDeAtividade like '%" & produto & "%' UNION SELECT * from search1 where Cidade like '%" & localidade & "%' and NomeFantasia like '%" & empresa & "%' and Estado like '%" & estado & "%' and RamoDeAtividade like '%" & produto & "%' order by NomeFantasia asc" RS.Open sql, conn, adOpenStatic, adLockReadOnly, adCmdTextif NOT RS.EOF thenRS.movefirstRS.pagesize=mypagesize Dim maxpages, maxpage, maxrecs, howmanyrecs, howmanyfields Dim close, open, iResultCount, ok Dim whichpage, all  RS.Movefirst maxpages=cint(RS.pagecount) maxpage = maxpages maxrecs=cint(RS.pagesize) RS.absolutepage=mypage howmanyrecs=0 howmanyfields=RS.fields.count -1 close = "]" open = "["else close = "" open = ""end ifif NOT RS.Eof Then iResultCount = (mypagesize * (mypage - 1)) + 1 else iResultCount = "0" end if if iResultCount + 9 > RS.recordcount then	ok = RS.recordcount	else	ok = iResultCount + 9  end if all = RS.recordcountdo UNTIL RS.eof OR howmanyrecs>=maxrecsif NOT RS.eof thenRamoDeAtividade = RS("RamoDeAtividade")NomeFantasia = RS("NomeFantasia")Endereco = RS("Endereco")Bairro = RS("Bairro")Cidade = RS("Cidade")Estado = RS("Estado")Telefone = RS("Telefone")Email = RS("Email")Site = RS("Site")%>	<table border="0" cellpadding="0" cellspacing="0" width="525" align="center">	  <tr> 		<td bgcolor="#FDD400" background="" colspan="3"> <font face="Verdana" size="1" color="#117A87">   <b><%= NomeFantasia %></b></font> 		  <table border="0" width="100%" cellspacing="3">			<tr> 			  <td width="100%" colspan="2" valign="middle"> <font face="Verdana" size="1" color="#117A87"><b> 				</b></font></td>			</tr>			<tr> 			  <td width="75%" bgcolor="ffffFF" background="resultado1.jpg"><font face="Verdana" size="1" color="navy"><br>				<%= Endereco %> - <%= Bairro %> - <%= Cidade %> - <%= Estado %></font> 				<br> <font face="Verdana" size="1" color="navy"><%= Telefone %></font><font face="Verdana"> 				</font><br><Center>				<font face="Verdana" size="1" color="navy"><b><a href="mailto:<%= Email %>"><img border="0" src="email.gif"></b></a></font><font face="Verdana">  				</font> <font face="Verdana" size="1" color="navy"><b><a href="<%= Site %>" target="_blank"><img border="0" src="website.gif"></a></b></font><font face="Verdana"> 				<br>				</font></font></td>			  <td width="25%"> <p align="center"><img border="0" src="<%=RS("figura") %>"></td>			</tr>		  </table></td>	  </tr>	</table>	<br><center>	<% iResultCount = iResultCount + 1end ifRS.Movenextresponse.flushhowmanyrecs=howmanyrecs+1loopmaxrecs = RS.recordcount%>	<font face="Verdana"> </font> </table>	<%if Not iResultCount = 0 thenDim w2, pad, k2, ref, scriptname, isPrev, isNext, isEnd, counterDim nextpage, prevpage, intPageDisp, counterstart, counterend, pagesize2, againpad=""scriptname=request.servervariables("script_name")if iResultCount <> "0" Then  response.write "<font size='1' color='black' face='Verdana, Arial,Helvetica, sans-serif'> Resultado das Páginas: "elseend if	  if (mypage mod 10) = 0 then	   counterstart = mypage - 9	  else	   counterstart = mypage - (mypage mod 10) + 1	  end if	  counterend = counterstart + 9	  if counterend > maxpages then counterend = maxpages	   Response.Write open	   for counter=counterstart to counterend	   If counter>=10 then	   pad=""	   end if	   if cstr(counter) <> mypage then	   ref="<a href='" & scriptname	   ref=ref & "?whichpage=" & counter & "&pagesize=" & mypagesize	   ref=ref & "&Estado=" & Estado& "&localidade=" & localidade& "&produto=" & produto& "&empresa=" & empresa& "'>" & pad & counter & "</a>"	   else	   ref="<b>" & pad & counter & "</b>"	   end if	   response.write ref	   if counter <> counterend then response.write " "	  next	  Response.Write close' Find out if there should be Backward or Forward Buttons on the table.intPageDisp = Falseif mypage = 1 AND RS.recordcount = 9 then   isPrev = False   isNext = False   isEnd = Trueelseif mypage = 1 then   isPrev = False   isNext = True   isEnd = Falseelseif mypage > 1 AND ok = RS.recordcount then   isPrev = True   isNext = False   isEnd = Trueelse   isPrev = True   isNext = True   isEnd = FalseEnd Ifif RS.recordcount <= 10 thenisNext = Falseelsenextpage = mypage + 1prevpage = mypage - 1end ifIf isPrev = False AND isNext = True AND isEnd = False thenw2 = "  <strong><a HREF=" & scriptname & "?whichpage=" & nextpage & "&pagesize=" & mypagesize & "&Estado=" & Estado& "&localidade=" & localidade& "&produto=" & produto& "&empresa=" & empresa& "><font face=Arial size=1>[Próxima >]</font></a></strong>"k2 = ""End Ifif isPrev = True AND isNext = True AND isEnd = False thenw2 = "  <strong><a HREF=" & scriptname & "?whichpage=" & prevpage & "&pagesize=" & mypagesize & "&Estado=" & Estado& "&localidade=" & localidade& "&produto=" & produto& "&empresa=" & empresa& "><font face=Arial size=1>[< Anterior]</font></a></strong>"k2 = "  <strong><a HREF=" & scriptname & "?whichpage=" & nextpage & "&pagesize=" & mypagesize & "&Estado=" & Estado& "&localidade=" & localidade& "&produto=" & produto& "&empresa=" & empresa& "><font face=Arial size=1>[Próxima >]</font></a></strong>"end ifif isPrev = True AND isNext = False AND isEnd = True thenw2 = "  <strong><a HREF=" & scriptname & "?whichpage=" & prevpage & "&pagesize=" & mypagesize & "&Estado=" & Estado& "&localidade=" & localidade& "&produto=" & produto& "&empresa=" & empresa& "><font face=Arial size=1>[< Anterior]</font></a></strong>"k2 = ""end ifif isPrev = False AND isNext = False AND isEnd = True thenw2 = ""k2 = ""end ifresponse.write w2 & k2response.write "" & again%><% elseresponse.write "<br> <center><font face=verdana size=2><a href=home.asp>Desculpa nenhuma ocorrência encontrada. Clique Aqui para voltar."end ifRS.closeset RS=nothing%></body></html></cod>

Compartilhar este post


Link para o post
Compartilhar em outros sites

pelo que eu entendi, você quer fazer o select em uma tabela, e se não existir dados, buscar na outra... certo!???se for isso, então faça seu select na primeira tabela,caso o .eof seja verdadeiro, falça o select na outra...se eu entendi certo, isso resolve!!!

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.