[RISOLTO]Subquery in mysql

  • Creatore Discussione Creatore Discussione Gian06
  • Data di inizio Data di inizio

Gian06

Utente Attivo
13 Set 2010
46
0
6
Scusate, ma non riesco ad effettuare una if su due campi di due tabelle (scusate se è una banalità ma mi sto incartando).
Mi spiego (e semplifico): in Tabella1 ho le seguenti colonne: nome_cognome, col1, col2, colx
in Tabella2 ho nome_cognome, attivo (attivo vale 0 oppure 1)

Voglio stampare tutti i nomi di tabella1 che in tabella2 hanno il capo attivo=1.

Qualcosa del genere:
$result2 = mysql_query("SELECT * FROM Tabella1") or die(mysql_error());
while($row2 = mysql_fetch_array( $result2 ))
{
echo $row2[nome_cognome] if (nome_cognome in tabella2 ha attivo=1)
}

PS. E' possibile utilizzando le subqueries?
 
Non serve una subquery per farlo.
In realtà bisogna dire che nome_cognome non è una chiave quindi dovresti aggiungere un codice magari autoincrement.
Per quanto riguarda la query basterebbe fare:
Codice:
SELECT A.nome_cognome
FROM tab1 A JOIN tab2 B on A.nome_cognome = B.nome_cognome
WHERE attivo = 1
 
Se è un esercizio giusto per allora va bene..nel caso in cui fosse un progetto e deve andare bene allora devi fare dei cambiamenti.
Comunque figurati ;)
 
Se sei alle prime armi non fa niente.
Ci sono tante cose da studiare prima di iniziare a fare le query.
Una ad esempio sono i tipi di chiave da scegliere per l'entità e se tali chiavi sono superchiavi; ovviamente è chiave solo se è univoca invece nel tuo caso ci possono essere utenti con lo stesso nome e cognome e quindi non è univoca.
 

Discussioni simili