Намного больше, но есть 3 таблицы ...
employees
employee_id
licenses
license_id
employee_id
companies
company_id
employee_id
SELECT * FROM employees
LEFT JOIN licenses
ON employees.employee_id = licenses.employee_id
LEFT JOIN companies
ON employees.employee_id = companies.employee_id
GROUP BY employees.employee_id
Я могу получить его только так, что либо лицензии, либо компании возвращают значение, а остальные возвращают NULL.Как я могу получить так, чтобы ОБА таблицы возвращали значения?Кажется, это так просто, но в данном случае это не работает, и я не могу понять, почему ...
РЕДАКТИРОВАТЬ: Вот еще немного информации.
Не каждый сотрудник имеет лицензию.
Не у каждого сотрудника есть компания.
Хотел бы вернуть employee_id license_id (if exists, else NULL) company_id (if exists, else NULL)
Возьмите случай, когда у сотрудника есть как license_id, так и company_id.Удалив одно из предложений JOIN, можно вернуть соответствующее значение.Однако, когда оба объединены, только возвращение company_id и license_id возвращает NULL.
Странно, верно?Любые идеи или нужна дополнительная информация?
ДАННЫЕ:
employee_id
1
2
3
employee_id license_id 1 1
2 1
3 2
employee_id company_id 1 1
2 1
3 2
ПОЖАЛУЙСТА, ВРЕМЯ ПОТЕРЯТЬ
Схема таблицы запутана и избыточна.Это была унаследованная схема, и я просто рассматривал SQL, а не базовую структуру.База данных нуждается в реструктуризации.