Запись родительской дочерней таблицы - построение SQL-запроса - PullRequest
0 голосов
/ 15 января 2010

Вот моя таблица и данные этих таблиц

Название таблицы: Код

CID Code
1   abc
2   def
3   xyz

Название таблицы: Подробности

ID  Name    CID
1     a       1
2     b       2

Таблица результатов:

ID      Code    Name
1       abc     a
2       abc     Null
3       def     b
4       def     Null
5       xyz     Null
6       xyz     Null

Я получил все записи из таблицы кодов, и для каждого кода мне нужно получить все строки из таблицы сведений, если какой-то код имеет значение, в котором они нуждаются, а если нет, то Null

Спасибо

1 Ответ

3 голосов
/ 15 января 2010

Похоже, вы ищете декартово произведение:

SELECT
    c.CID * d.ID AS ID,
    c.Code,
    CASE
        WHEN c.CID = d.CID THEN d.Name
        ELSE NULL
    END AS Name
FROM Code c
CROSS JOIN Details d

Несмотря на то, что декартовы произведения довольно медленны для больших столов ... поэтому убедитесь, что это именно то, что вам действительно нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...