Получить результат из многих таблиц в MySQL - PullRequest
1 голос
/ 14 октября 2011

У меня есть несколько таблиц, из которых мне нужно получить результаты в одном запросе.

Вот как я делаю это сегодня.

$sql="select * from structure 
a, audio b where a.id=b.id_parent and b.published=1 order by b.data desc";

Это дает мне список аудио. Что мне нужно сделать, это получить ответы из многих таблиц. Как вы видите, я называю две структуры таблиц и аудио. Мне нужно получить результаты из структуры, аудио, вектор и фотографии. Любые подсказки, как бы я это сделал?

Ответы [ 2 ]

2 голосов
/ 14 октября 2011

если у вас есть отношение в этих таблицах, то вы можете использовать объединения для получения данных из нескольких таблиц

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

но убедитесь, что у вас есть правильная ссылка между этими таблицами и перепроверьте полученные данные

0 голосов
/ 14 октября 2011

Другой способ - создать представление в базе данных, основанное на объединенном запросе.Таким образом, ваша программа просто должна знать, что нужно запросить из этого представления.

Вам все равно нужно будет написать SQL для объединения, но, по крайней мере, после того, как это будет сделано, он будет прозрачен для остальной части кода.

...