Jointure entre deux tables

Fermé
apis87 - 31 mars 2012 à 13:16
 aetrea - 31 mars 2012 à 23:27
Bonjour,

J'ai créé deux tables (mailclient & mailparrain) avec des champs similaires ex:
$query = "DROP TABLE IF EXISTS mailclient";
$resul = mysql_query($query)
	or die ("Requete '$query' invalide");

$query = "CREATE TABLE mailclient (
  num_adh int(5) unsigned NOT NULL auto_increment,
  login varchar(20) NOT NULL default '*',
  password varchar(20) NOT NULL default '*',
  prenom1 varchar(25) NOT NULL default '*',
  nom1 varchar(20) NOT NULL default '*',
  tel varchar(15) NOT NULL default '0',
  mail varchar(45) NOT NULL default '*',
  PRIMARY KEY  (num_adh)
) TYPE=MyISAM";
$result = mysql_query($query)
	or die ("Requete '$query' invalide");
	
$query = "DROP TABLE IF EXISTS mailparain";
$resul = mysql_query($query)
	or die ("Requete '$query' invalide");
	
$query = "CREATE TABLE mailparain (
  num_adh varchar(20) NOT NULL default '*',
  login varchar(20) NOT NULL default '*',
  password varchar(20) NOT NULL default '*',
  prenom1 varchar(25) NOT NULL default '*',
  nom1 varchar(20) NOT NULL default '*',
  tel varchar(15) NOT NULL default '0',
  mail varchar(45) NOT NULL default '*',
  PRIMARY KEY  (num_adh)
) TYPE=MyISAM";
$result = mysql_query($query)
	or die ("Requete '$query' invalide");	
	
$query = "INSERT INTO mailclient 
SELECT num_adh, login, password, prenom1, nom1, tel, mail 
FROM new_client";
$result = mysql_query($query)
	or die("Requête '$query' invalide : ".mysql_error());
	
$query = "INSERT INTO mailparain 
SELECT num_adh, login, password, prenom1, nom1, tel, mail 
FROM adherent";
$result = mysql_query($query)
	or die("Requête '$query' invalide : ".mysql_error());
	
$query = "SELECT mailclient.num_adh, mailclient.login, mailclient.password, mailclient.nom1, mailclient.prenom1, mailclient.tel, mailparrain.num_adh, mailparrain.login, mailparrain.password, mailparrain.nom1, mailparrain.prenom1, mailparrain.telFROM mailclient, mailparain
WHERE mailclient.num_adh = mailparain.num_adh";
$result = mysql_query($query)
	or die ("Requete '$query' invalide"); 

 	if (mysql_num_rows($result) == 0) {
			print"<h3>Aucune donnée dans la base</h3>:<br>";
	}


Le résultat est vide !!! Ou est le problème sur ma jointure ?
Merci d'avance
A voir également:

1 réponse

Bonjour,

pourquoi deux tables qui ont les mêmes champs de données?
Ajoutez un champ type_client(parrainé, client) et vous n'aurez pas à faire de jointures, ou même un champ parrain (NUULL autorisé)ou vous mettez l'identifiant du parrain, s'il reste vide le client n'a pas été parrainé.
Quelle est la différence entre un parrain et un client? Un parrain n'est il pas client aussi? Dans ce cas il faut les regrouper(client et parrain ont tout en commun).

Vos requêtes INSERT sont fausses(pourquoi un select? SELECT sert à obtenir un résultat). Avec ce script vous recréez toutes vos tables à chaque fois(vide).
Un peu normal de n'avoir aucun résultat avec des tables vides(vu que la requête d'insertion est fausse et ne contient pas de valeur).
0