Uygun sql sorgu anlamaya unbale

3 Cevap php

Böyle bir tablo var

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

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

Basically I am displaying the results in php code. while displaying the testcase, I am storing the testcase in a variable. in the while loop of mysql_query, I am creating another connection to DB and passing this variable to TestCases table to get the TestCase_Container assiciated with it. This is a long way of doing this but I am unable to figure out proper direct SQL query using join or any other thing. Can someone point me in right direction please?

Teşekkürler,

3 Cevap

Tür söylemek zor, ama ne yapmak için çalışıyoruz, belki böyle bir sorgu olduğunu düşünüyorum?

SELECT b.id AS result_id, a.TestCase, b.Verdict, b.AppID, a.id AS testcase_id, a.TestCase_container
FROM TestCases a
LEFT JOIN Results b
  ON b.TestCase = a.TestCase;

Muhtemelen endeksli tamsayı / id alanında katılacak için daha iyi olurdu, ama bu iyi çalışır.

Bunun gibi mi?

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

DB normalleşmesi için, sonuçlar tablo yerine TestCase testcase_id alanı olmalı

Kolayca bu SQL sorgusu tarafından tablodan tüm verileri seçmek olabilir:

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

Eğer (Örneğin için) bunun gibi herhangi bir döngü içinde değerler getted dizisi yinelemek gerekir sonra:

$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";
}