разблокировать, чтобы выяснить правильный запрос SQL

0

У меня есть таблицы вроде этого

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

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

В основном я показываю результаты в php-коде. при отображении тестовой таблицы я храню тестовую таблицу в переменной. в цикле while mysql_query я создаю другое соединение с БД и передаю эту переменную в таблицу TestCases, чтобы получить TestCase_Container, связанный с ней. Это длинный способ сделать это, но я не могу найти правильный прямой SQL-запрос, используя соединение или любую другую вещь. Может кто-нибудь указать мне в правильном направлении?

Спасибо,

Теги:

3 ответа

0
Лучший ответ

Трудно сказать, но я думаю, что вы пытаетесь сделать такой запрос, возможно,?

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;

Вероятно, было бы лучше объединиться в индексированном целочисленном/id-поле, но это будет нормально работать.

2

LIke this?

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

Для нормализации БД в таблице результатов должно быть поле testcase_id вместо TestCase

  • 0
    Э-э, это решение тоже: D
0

Вы можете легко выбрать все данные из своих таблиц с помощью этого 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

После того, как вы должны перебрать полученный массив значений в любой цикл (например, while):

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню