У меня есть две таблицы в базе данных. Один — это имя поставщика (имя, общая информация), а другой — тип поставщика. Поставщик может быть более одного типа. Таким образом, в моей базе данных провайдера вы можете выбрать три разных типа.
У меня проблемы с выяснением, как получить доступ к имени provider_type. Я предполагаю присоединение, но не могу пройти через это.
Вот что у меня сейчас:
SELECT p.name, p.phone, p.provider_type1, p.provider_type2
FROM providers AS p
INNER JOIN provider_type ON p.provider_type1 = provider_type.id
WHERE installation_id = $installation_id
Проблема, с которой я постоянно сталкиваюсь, заключается в том, что провайдер имеет более одного типа, который может встречаться в запросе дважды, вместо этого я просто хочу перечислить этого провайдера, а затем перечислить тип услуг, которые они могут предоставить.
Объединение не кажется правильным. Все, что мне нужно сделать, это получить имя provider_type с тем же идентификатором, что и provider.provider_type1 и т. Д.
Что я должен делать вместо этого. Благодарю.
Присоединитесь к провайдеру дважды, с двумя псевдонимами, по одному для каждого provider_type.
Увидеть этот.
(Но лучше иметь таблицу для строк «provider [provider_id] имеет тип (name) [provider_type]» вместо столбцов provider_typeX. Хотя это не нормализация, просто хороший дизайн.)
Других решений пока нет …