SQL JOIN Query - Confused - PullRequest
       10

SQL JOIN Query - Confused

1 голос
/ 25 ноября 2010

Я работаю над услугой по конвертации валюты с другом, но столкнулся с большой проблемой в конце проекта.

У нас есть 3 таблицы валют (содержит код валюты, например, 'GBP', Название валюты, текущий курс и временная метка), страны (содержит код страны, например, «США» и местоположение, на которое он ссылается), currency_country (содержит код страны и код валюты, это составной первичный ключ, например, пример записи будет выглядеть так: FR - EUR, IR - EUR, США - USD, GB - GBP, поэтому в этом списке перечислены все страны и связанная с ними валюта).

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

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

Любые советы, помощь, указатели приветствуются.

Ответы [ 4 ]

2 голосов
/ 25 ноября 2010

JOINS в основном объединяют две или более связанных таблицы, чтобы создать большую таблицу.Если вы использовали Excel, это как супер VLOOKUP.Синтаксис JOIN дополняет ваше предложение FROM.Вы указываете тип JOIN (INNER, LEFT OUTER, RIGHT OUTER + другие типы и сокращение) и условие ON (где строки из первой таблицы будут сопоставляться до второй таблицы).

Учитывая ваши три таблицы, вы должны иметь возможность ввести всю информацию, которую вы хотите, с чем-то вроде:

SELECT countries.name
       , currency_countries.country_code
       , currencies.name
       , currency_countries.currency_code
       , currencies.current_rate
  FROM currency_country
       INNER JOIN currencys
         ON currency_country.currency_code = currencys.code
       INNER JOIN countries
         ON currency_country.country_code = countries.code 
0 голосов
/ 25 ноября 2010

Вам нужна таблица currency_country, только если у вас есть отношение многие ко многим между валютами и странами.Это тот случай?В противном случае вам просто нужна таблица «Валюты» и таблица «Страны», в которой указан код ISO данной валюты.(Обратите внимание, что некоторые валюты не имеют ассоциированной с ними страны)

0 голосов
/ 25 ноября 2010

Вы должны прочитать простые вещи по DB / SQL, все хорошо и хорошо, и вы получите ответ отсюда, но в считанные минуты вы должны понять, как делать такие вещи, как объединение таблиц

Это выглядит довольно неплохо для начала: http://www.sql -tutorial.net / SQL-tutorial.asp

В любом случае, ваш SQL:

[РЕДАКТИРОВАТЬ - 2 сообщения побили меня до SQL;)]

0 голосов
/ 25 ноября 2010

Я предполагаю, что у вас есть ссылочная целостность между вашими таблицами, так что строки Currency_Country не существуют без строки Country и хотя бы одной строки Currency.В этом случае таблицу валют использовать не нужно.

Чтобы найти все страны со связанной валютой, используйте:

SELECT Countries.country_code, location
FROM Countries INNER JOIN Currency_Country 
ON Countries.country_code = Currency_Country.country_code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...