2017-10-11 6 views
0

toute aide appréciée, la première fois en essayant cela.SQL INNER JOIN ne fonctionne pas à partir de l'application PHP pour prendre des données de la base de données de progression

Mon SQL INNER JOIN ne fonctionne pas à partir d'une application PHP pour prendre des données de la base de données de progression.

Mon code pour la requête SQL est:

$sql="SELECT * from pub.table1 inner join pub.table2 on table1.nsnref = table2.nrnref where table1.nsscac <> '' and table1.client = 'tgl' and table2.nrname matches '*" .$_POST['suggest']. "*'"; 

Les noms de table ont été changés pour protéger les innocents. Si je lance une requête SQL sans une jointure retourne par appel ajax très rapidement, mais rejoint ne fonctionne pas pour moi :(

Nous vous remercions d'avance pour toute aide.

+3

Ne blâmez pas la jointure. – jarlh

+0

@jarlh que voulez-vous dire? S'il vous plaît fournir une réponse spécifique –

+0

ne ressemble pas à une déclaration correcte .. 'SELECT * FROM table1 A joindre table2 B ON A.nsnref = B.nsnref ...' – Odyssey1111

Répondre

0

Le problème est lorsque vous définissez l'alias de la table : pub.table1 est incorrect, pub AS table1 OU pub table1 est correct

SELECT * 
    FROM pub table1 
    INNER JOIN pub table2 ON table1.nsnref = table2.nrnref 
    WHERE table1.nsscac <> '' AND 
    table1.client = 'tgl' AND 
    table2.nrname matches '*" .$_POST['suggest']. "*'" 

Si la pub est la base de données puis définissez un autre alias pour la table

SELECT * 
    FROM pub.table1 T1 
    INNER JOIN pub.table2 T2 ON T1.nsnref = T2.nrnref 
    WHERE T1.nsscac <> '' AND 
    T1.client = 'tgl' AND 
    T2.nrname matches '*" .$_POST['suggest']. "*'" 
0

Arrgh! Correction du problème, utilisait le mot clé Progress 'matches' alors que j'aurais dû utiliser sql 'like' mot-clé. Ma propre faute. Merci à @danielpopa pour avoir essayé d'aider.

+0

Veuillez agréer. Match .. Contre ou REGEXP si LIKE n'aide pas. – danielpopa

+0

Merci encore @danielpopa –