У меня есть таблица User_Device с полями имя пользователя , num_of_years и устройство (внешний ключ), таблица Устройство с полями id , имя , тип и отношение многие ко многим в поле свойство , которое является третья таблица Свойство с полями id , name , location . Я знаю, как получить все поля из первых двух таблиц:
User_Device.objects.select_related('device').all()
Я также знаю, как получить все поля таблицы «многие ко многим»:
Device.property.through.objects.all()
или фильтр используя:
Device.property.through.objects.filter(property=12)
, что дает мне все поля таблицы «многие ко многим», которая выглядит как Device_Property с полями device_id , property_id
У меня есть 2 вопроса:
Как получить все поля таблицы устройств и таблицы свойств, которые выдает запрос SQL, когда вы присоединиться к нему следующим образом: select d.*,p.* from device_property dp inner join property p on dp.property_id=p.id inner join device d on dp.device_id=d.id
Как внутренне объединить все три таблицы и получить все поля, как результат запроса:
select ud.*,d.*,p.* from user_device ud inner join device_property dp on ud.device_id = dp.device_id inner join property p on dp.property_id=p.id inner join device d on dp.device_id=d.id
В заключение таблица A имеет поле внешнего ключа в таблице B, а таблица B имеет отношение многие ко многим с таблицей C (НЕ внешний ключ). Как мне получить ВСЕ поля таблицы A, B, C