Когда вы объединение двух наборов данных, не существует неявное упорядочение, вы можете получить результаты в любом порядке.
Получите ваш заказ должен использовать ORDER BY
.
Использовать ORDER BY
, тогда вы должны иметь поля для этого заказа.
В вашем случае, псевдо-код будет ...
- ORDER BY [dept_id], [depts-then-employees], [dept_name]
Середина этих трех является то, что вы будете иметь, чтобы создать.
Один из способов сделать это следующим образом.
примечание: Просто потому, что у вас есть поле для заказа по, не означает, что вы должны выбрать его.
SELECT
dept_id,
dept_name
FROM
(
SELECT
d.dept_id,
d.dept_name,
0 AS entity_type_ordinal
FROM
department d
UNION ALL
SELECT
d.dept_id,
e.employee_name,
1 AS entity_type_ordinal
FROM
department d
INNER JOIN
employee e
ON e.dept_id = d.dept_id
)
dept_and_emp
ORDER BY
dept_id,
entity_type_ordinal,
dept_name
Почему профсоюз-все? это только запрос select –
, либо это очень простой запрос, и вы должны просто прочитать учебное пособие, или это сложнее, чем кажется, и вы должны описать схему своей базы данных и то, что вы пробовали в качестве запроса, если хотите получить помощь. – polku
Короткий ответ: «Не делай». Вы хотите, чтобы в столбце 'dept_name' хранилось имя отдела и фамилии сотрудника? Это принципиально нарушенный дизайн. У вас должен быть хотя бы один столбец, называемый «тип», который объясняет, что описывает эта строка (отдел или сотрудник). Но даже лучшие имена отделов должны быть в разных столбцах для имен сотрудников. Если это касается форматирования результатов для отображения, отформатируйте их в своем приложении ... – MatBailie