2009-11-18 4 views
0

J'ai des tables comme celui-ciunbale pour comprendre la requête SQL appropriée

Results 
------- 
id  - autoincrement value 
TestCase - varchar 
Verdict - varchar 
AppID  - varchar 

TestCases 
--------- 
id     - autoincrementr value 
TestCase   - varchar 
TestCase_container - varchar 

En fait, je suis d'afficher les résultats dans le code php. lors de l'affichage du test, je stocke le test dans une variable. Dans la boucle while de mysql_query, je crée une autre connexion à DB et passe cette variable à la table TestCases pour obtenir l'asservissement du TestCase_Container. Ceci est un long chemin à faire, mais je suis incapable de comprendre la requête SQL directe appropriée en utilisant join ou tout autre chose. Quelqu'un peut-il me diriger dans la bonne direction s'il vous plaît?

Merci,

Répondre

0

un peu difficile à dire, mais je pense que ce que vous essayez de faire est une question comme cela peut-être? Il serait probablement préférable de se joindre à un champ entier/id indexé, mais cela fonctionnerait bien.

2

LIKE ceci?

select r.id,r.TestCase,r.Verdict,r.AppId,tc.TestCase_container 
from Results r,TestCases tc 
where Results.TestCase=TestCases.TestCase 

pour la normalisation DB, tableau des résultats doit avoir le terrain testcase_id au lieu de TestCase

+0

Euh, cette solution aussi: D – jeffff

0

Vous pouvez facilement sélectionner toutes les données de vos tables par cette requête SQL:

SELECT Results.TestCase AS TestCase, Results.Verdict AS Verdict, Results.AppID AS AppID, TestCases.TestCase_container AS Container FROM Results JOIN TestCases ON Results.TestCase = TestCases.TestCase 

Une fois que vous devez itérer tableau getted de valeurs dans une boucle (par exemple en) comme ça:

$query = "SELECT Results.TestCase, Results.Verdict, Results.AppID, TestCases.TestCase_container FROM Results JOIN TestCases ON Results.TestCase = TestCases.TestCase"; 
$res = mysql_query($query) or die(mysql_error()); 
while ($row=mysql_fetch_array($res)) { 
    echo $row['TestCase'], ":", $row['Verdict'], ":", $row['AppID'], ":", $row['Container'], "\n"; 
}