Работя върху присъединяване и изглежда не мога да получа набора от резултати, от който се нуждая. Нека нарисувам сценария:
Имам 2 маси:
Таблица с данни
+----+-------+
| ID | Name |
+----+-------+
| 10 | Test1 |
| 11 | Test2 |
| 12 | Test3 |
| 13 | Test4 |
| 14 | Test5 |
| 15 | Test6 |
+----+-------+
Присъединете се към масата
+----+-----+-----+-----+
| ID | FID | GID | Val |
+----+-----+-----+-----+
| 10 | 3 | | abc |
| 10 | | 1 | def |
| 11 | 3 | | ijk |
| 12 | | 1 | lmn |
| 13 | 4 | | opq |
+----+-----+-----+-----+
Очакван набор от резултати
+---------------+-----------------+---------------+----------------+----------------+
| Data table id | Data table name | Join Tabe FID | Join Table GID | Join Table Val |
+---------------+-----------------+---------------+----------------+----------------+
| 10 | Test1 | 3 | | abc |
| 11 | test2 | 3 | | ijk |
| 12 | test3 | | 1 | lmn |
+---------------+-----------------+---------------+----------------+----------------+
Моето запитване
Select
*
from
datatable A
join jointable b
on
A.ID = B.ID
and B.FID = 3
join jointable c
on
A.ID = C.ID
and C.GID = 1
and C.FID <> null
Това, което се случва, е, че свързването на таблица C се извършва върху набора от резултати на съединението между таблица A и B, следователно наборът от резултати е празен.
Искам обединяването на таблица C да се приложи върху таблица A, а не върху набора от резултати от обединението между таблица A и B; което ще доведе до очаквания набор от резултати.
Може ли някой да помогне?
Благодаря
id
от 3, така че очаквамB.ID = 3
да филтрира всички записи. - person Gordon Linoff   schedule 15.03.2016