Соединение 2 столов - PullRequest
       6

Соединение 2 столов

0 голосов
/ 17 апреля 2011

Это мой запрос

SELECT Testcases.Testcase, Tests.Result
FROM Testcases LEFT JOIN Tests ON Tests.TestCaseID=Testcases.ID
WHERE Tests.Release="1.1.111";

Однако я хочу получить ВСЕ строки в тестовых случаях, независимо от того, Tests.TestCaseID=Testcases.ID. Для каждой строки в тестах есть одна строка в тестовых случаях для данного номера выпуска.

Примеры:

Testcases table
---------------
ID Testcase
1  TC-1
2  TC-5
3  TC-8

Tests table
-----------
ID TestCaseID Result Release
1  1          OK     1.1.111
2  3          FAIL   1.1.111

То, что я хочу получить, это

Testcase Result
TC-1     OK
TC-5     <empty>
TC-8     FAIL

Ответы [ 3 ]

1 голос
/ 17 апреля 2011

Тогда вам следует использовать внешнее соединение:

SELECT tc.Testcase, t.Result
FROM Testcases as tc, 
LEFT OUTER JOIN Tests as t 
ON Tests.TestCaseID=Testcases.ID
WHERE Tests.Release="1.1.111";
0 голосов
/ 17 апреля 2011

наконец, это сработало для меня, попробуйте.

SELECT Testcases.Testcase, Tests.Result
FROM Testcases LEFT OUTER JOIN Tests ON Tests.TestCaseID=Testcases.ID 
WHERE Tests.Release="1.1.111"
0 голосов
/ 17 апреля 2011

Если Tests.TestcaseID не равен Testcases.ID, тогда это не соединение.Вы пытаетесь получить декартово произведение?

Если вам просто нужны все строки в тестовых случаях, просто выполните SELECT * из TESTCASES.

Не понятно, чего вы хотите - почему бы и нетВы даете 3-рядный пример таблицы?

...