Скажем, у меня есть таблица сотрудников, где любой сотрудник может быть связан с любым другим сотрудником (многие ко многим). Каждый сотрудник имеет много характеристик, которые хранятся отдельно.
emp: id,name
related: name,emp1role,emp1id,emp2role,emp2id
chars: empid,name,value
Я хочу получить все характеристики сотрудников, которые связаны через «ххх» вместе с отношением. Я сейчас использую этот запрос:
SELECT c.empid, c.Name, c.Value
FROM chars as c, related as r
WHERE r.name='xxx' AND (r.emp1id=c.empid OR r.emp2id=c.empid)
Это работает, и это дает связанным сотрудникам один за другим, то есть, если emp22 и emp43 связаны через 'xxx', тогда я получаю символы emp43, сопровождаемые emp22 и так далее. Таким образом, я могу узнать, какие два сотрудника связаны (что необходимо). Тем не менее, я хочу знать, является ли этот порядок просто удачей или он четко определен. Это в SQLite.
Если это не определено способом, как еще я могу это сделать? Кроме того, мне нужно знать их соответствующие роли. Я хочу предпочтительно сделать это в одном запросе. Можете ли вы вспомнить какой-нибудь другой запрос?
Заранее спасибо,
Manish
PS: это не фактические таблицы. Они здесь для простоты задавания вопроса.