Получить родительскую строку, за которой следуют дочерние строки - PullRequest
0 голосов
/ 07 сентября 2018

Ответы других родителей-> детей, которые я нашел, на самом деле, похоже, не решают мою ситуацию, так что вот так.

left-right-connections
cid    leftId     rightId
1      1          1
2      1          2
3      1          3
4      2          4
5      3          5
5      3          6

left
id    desc
1     RED
2     GREEN
3     BLUE

right
id   desc
1    car
2    train
3    helicopter
4    truck
5    boat
6    roller skates

Мне нужна помощь в создании запроса, который будет возвращать что-то вроде этого

cid    leftId     rightId   desc
        1                   RED
  1     1            1      car
  2     1            2      train
  3     1            3      helicopter
        2                   GREEN
  4     2            4      truck
        3                   BLUE
  5     3            5      boat
  6     3            6      roller skates

Я могу заставить объединения работать, но затем я получаю все leftId и right Id и desc в каждой строке, когда мне нужно, чтобы левый элемент был родителем всех правых дочерних элементов.

Я думаю, что мне нужно отдельное значение для leftId, а затем подзапрос, который получает все связанные элементы rightId. Я могу сделать очень простой SQL, но это над моей головой.

Надеюсь, то, что я здесь объяснил, имеет смысл.

Спасибо за помощь.

1 Ответ

0 голосов
/ 07 сентября 2018

Вы можете сначала получить отдельные данные leftId, а затем объединить их с данными rightId и отсортировать по столбцам, чтобы получить желаемый результат.Это то, что вам нужно для отображения или пользовательского интерфейса?

SQL FIDDLE с образцами данных

Пример:

SELECT DISTINCT NULL AS CID, leftID, NULL AS rightId, b.descr
FROM leftrightT A
INNER JOIN leftT B on A.leftId = B.id
UNION ALL
SELECT CID, leftID, rightId, b.descr
FROM leftrightT A
INNER JOIN rightT B on A.rightId = B.id
order by leftId, CID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...