Мне нужна помощь в соединении таблиц в MYSQL - PullRequest
0 голосов
/ 17 марта 2011

В настоящее время я разрабатываю веб-сайт с помощью MYSQL INNODB, и мне нужен кто-то, кто поможет мне объединить таблицы, чтобы я мог сопоставить поставщиков с цитатой

Вот моя структура таблиц

quote    - quoteId,postcodeId
provider - providerId
areaProviderPreference - postcodeId,providerId
postcode - postcodeId

В основном мне нужно написать запрос MYSQL, который возвращает список всех провайдеров, которые охватывают цитату postcodeId. Может кто-нибудь помочь мне, пожалуйста :) Я полностью борюсь с этим!

Большое спасибо заранее.

Приветствия

Ответы [ 2 ]

1 голос
/ 17 марта 2011
SELECT p.providerid 
FROM   provider p 
       JOIN areaproviderpreference app 
         ON app.providerid = p.providerid 
       JOIN quote q 
         ON q.quoteid = app.postcodeid 
GROUP  BY p.providerid 

вам нужны индексы на

  • (areaproviderpreference.providerid)
  • (quote.quoteid)
  • (provider.providerid)

На самом деле вы не нуждаетесь в кавычках, но вы можете использовать предложение WHERE.

1 голос
/ 17 марта 2011
select p.* from provider p
inner join areaProviderPreference ap on p.providerID = ap.providerID
inner join quote q on ap.postcodeId = q.postcodeID

Кроме того, если вам также нужны подробности postCode, то вам необходимо дополнительное объединение как

inner join PostCode pc on pc.postCodeId = ap.postcodeId
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...