#php #mysql #select #multiple-tables
#php #mysql #выберите #несколько таблиц
Вопрос:
У меня есть несколько таблиц, из которых мне нужно получить результаты в одном запросе.
Вот как я это делаю сегодня.
$sql="select * from structure
a, audio b where a.id=b.id_parent and b.published=1 order by b.data desc";
Это дает мне список аудио.
Что мне нужно сделать, так это получить ответы из многих таблиц. Как вы можете видеть, я вызываю две таблицы structure и audio. Мне нужно получить результаты из структуры, аудио, вектора и фотографий. Любые подсказки, как я мог бы это сделать?
Комментарии:
1. использование sql join в запросе должно помочь, если я правильно понял..
2. либо вы можете использовать объединения, либо то, как вы это делаете, единственное, что вам нужно, чтобы поместить эти таблицы в отношение связанных столбцов.
Ответ №1:
если у вас есть отношения в этих таблицах, вы можете использовать объединения для получения данных из нескольких таблиц
select * from structure
a inner join
audio b on a.id=b.id_parent where b.published=1 order by b.data desc
отредактировано согласно комментарию пользователя
вы можете выполнить вложение внутреннего соединения, например
SELECT DISTINCTROW
tblChippingSystems.Manufacturer_ID
, tblChippingSystems.Chippingcounter
, tblManufacturer.ManufacturerDesc
, tblChippingSystems.Customer_ID
FROM ( tblChippingSystems
INNER
JOIN tblManufacturer
ON tblChippingSystems.Manufacturer_ID
= tblManufacturer.Manufacturer_ID )
INNER
JOIN tblModel
ON tblChippingSystems.Model_ID = tblModel.Model_ID
WHERE tblChippingSystems.Customer_ID = k
ORDER
BY tblChippingSystems.Manufacturer_ID DESC
но убедитесь, что у вас есть правильная ссылка между этими таблицами, и
дважды проверьте полученные данные
Комментарии:
1. Как бы я присоединился к другим таблицам из этого? Мне также нужно присоединиться к другим таблицам, но как?
Ответ №2:
Другим способом было бы создать представление в базе данных, основанное на объединенном запросе. Таким образом, вашей программе просто нужно knwo для запроса из этого представления.
Вам все равно нужно будет написать SQL-соединение, но, по крайней мере, после того, как это будет сделано, оно будет прозрачным для остальной части кода.