cercare su più tabelle

  • Creatore Discussione Creatore Discussione 3dshade
  • Data di inizio Data di inizio

3dshade

Nuovo Utente
8 Mar 2010
8
0
0
Ciao Ragazzi
Da premettere che non ho una grande esperienza di ASP il mio problema è che non riesco a ricercare un testo su du tabelle diverse il codice che esegue la ricerca su una tabella è questo:

'SQL = "Select * from comm where corpo like '%" & Cerca & "%' or titolo like '%" & Cerca & "%' order by ID desc"

allo stato attuale fa la ricerca sulla tabella comm, la dovrebbe fare anche sulla tabella interv contemporaneamente

spero di non essermi incartato ed un grazie anticipatamente
Anto
 
Per selezionare dati da più tabelle basta separarle con una virgola. Esempio:
Codice:
SELECT * FROM tabella1,tabella2 WHERE titolo LIKE '%prova%'


Ciao grazie per aver risposto avevo provato e mi da questo errore :
Il riferimento al campo specificato 'corpo' potrebbe essere relativo a più tabelle elencate nella proposizione FROM dell'istruzione SQL.
boh..:crying:
 
Scusami, ma il campo corpo è presente in entrambe le tabelle in cui stai effettuando la ricerca? Altrimenti prova così:
Codice:
SELECT * FROM tabella1,tabella2 WHERE (tabella1.corpo OR tabella2.corpo) LIKE '%valore1%'
 
E modificando la query come ti ho suggerito? Ovviamente devi applicare quella modifica per tutti i campi, non solo per corpo.

mi da 1 errore di sintassi sbaglio qualcosa di sicuro..:(

Codice:
SQL = "SELECT * FROM comm, interv WHERE (comm.corpo OR interv.corpo) like '%" & Cerca & "%' comm.titolo or interv.titolo like '%" & Cerca & "%' order by ID desc"



---------

Microsoft JET Database Engine error '80040e14'

Errore di sintassi (operatore mancante) nell'espressione della query '(comm.corpo OR interv.corpo) like '%parlamento%' comm.titolo or interv.titolo like '%parlamento%''.

/cerca.asp, riga 71
 
Modifica questa parte:
Codice:
comm.titolo or interv.titolo
Con questa:
Codice:
OR (comm.titolo OR interv.titolo)

Ho fatto come dici e mi genera il seguente errore, da premettere che alcuni campi non li ho inseriti sarà per questo?? In realtà mi servono solo 2 campi presenti in entrambe le tabelle.. tascurando gli altri.

Codice:
Microsoft JET Database Engine error '80004005'

Il riferimento al campo specificato 'ID' potrebbe essere relativo a più tabelle elencate nella proposizione FROM dell'istruzione SQL.

/cerca.asp, riga 71
 
Scusami, puoi postare un attimo la query come la usi tu? Per intero, intendo. Mi sembra che ci sia qualche errore di fondo :D

e si c'è un errore di fondo..:D
ho fatto altre prove, ma da sempre errore..


Codice:
Dim SQL, Rs
SQL = "SELECT * FROM interv, comm WHERE (comm.corpo OR interv.corpo) like '%" & Cerca & "%' OR (comm.titolo OR interv.titolo) like '%" & Cerca & "%' order by ID desc"
Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.Open SQL, Conn, 3, 3
 
Ah, ho capito! Praticamente devi specificare secondo il campo di quale tabella deve ordinare i dati. Ma in questo caso dovresti raggrupparli ognuno per un campo diverso... non so come fare a questo punto, aspettiamo qualcuno che su SQL ne sappia più di me :p
 

Discussioni simili