Comparer les colonnes de deux tables différentes

Fermé
merchou - 13 mars 2014 à 14:02
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 13 mars 2014 à 15:51
Bonjour à tous !

Je suis nouveau PHP.

J'ai une table nommée coordab ayant 2 colonnes : IMSI, MDN

et une autre table de nom numero ayant une colonne de nom NUMF .

Mon souci de savoir la requête qui permet de:

- Prendre chaque ligne de la colonne NUMF de la table numero et comparer ses 7 derniers

chiffres aux 7 derniers chiffres de chaque ligne de la colonne IMSI.

- Là où ces 7 derniers chiffres sont égaux, il recupère cette ligne IMSI, et le MDN de cette

ligne ainsi que la ligne NUMF testé (de la table numero).

Exemple:

------IMSI----------------------MDN----------------NUMF (de la table numero)

624030743830010-------2373300002E-------2333000034
624030743830015-------2373300002S------2333830023
624030743830019-------237330000D1-------2333000015
624030743830023---2373300002N-----2333000084
624030743830000-------237330000DO-------2333000009

Résultats:

NUMF : 2333830023
IMSI : 624030743830023
MDN : 2373300002N



Voici mon code:

   <?php	
set_time_limit(0);
error_reporting(E_ALL ^ E_NOTICE);

	//Connexion à la BD
mysql_connect('localhost','root','');
mysql_select_db('gestnum');

$sql = 'select t1.IMSI, t1.MDN, t2.NUMF
from coordab t1
inner join (
    select distinct NUMF from numero
) t2 ON SUBSTRING(t2.NUMF, -7) = SUBSTRING(t1.IMSI, -7)';

//'SELECT * FROM coordab WHERE RIGHT(IMSI, 7) = RIGHT(NUMF, 7);';

// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$i=0; 
// on va scanner tous les tuples un par un
while ($data = mysql_fetch_array($req)) 
    {
	$i++; 
	// on affiche les résultats
	echo 'IMSI : '.$data['IMSI'].'<br />';
	echo 'MDN : '.$data['MDN'].'<br />';
	//echo 'PUK1 : '.$data['PUK1'].'<br />';
	echo 'NUMF : '.$data['NUMF'].'<br /><br />';
    }
mysql_free_result ($req);
mysql_close ();

?>



Quand j'exécute ce code, j'obtiens l'erreur suivante:

Erreur SQL !
select t1.IMSI, t1.MDN, t2.NUMF from coordab t1 inner join ( select distinct NUMF from numero ) t2 ON SUBSTRING(t2.NUMF, -7) = SUBSTRING(t1.IMSI, -7)
Unknown column 'NUMF' in 'field list'


S'il vous plait aidez moi, je ne connais pas.

Merci d'avance.
A voir également:

1 réponse

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
Modifié par Pitet le 13/03/2014 à 15:52
Salut,

Pour ton message d'erreur : la colonne t2.NUMF n'existe pas dans la table coordab t1

Bonne journée
0