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

Итак, в настоящее время я учусь в классе Database 2 в своем университете. Мы используем базу данных Northwinds. Я не использовал SQL несколько лет, поэтому немного заржавел.

Я изменил несколько элементов в таблице заказов, чтобы вместо «Германия» было «Таити». Теперь мне нужно написать запрос, чтобы узнать, какие заказы куда отправлены.

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

Это то, что у меня есть сейчас (что я также не уверен, правильно ли это):

SELECT Customers.Country
FROM Customer
WHERE Customer.Country = 'Germany'

INNER JOIN

SELECT Orders.ShipCountry
FROM Orders
WHERE Orders.ShipCountry = 'Tahiti'

Так что, если кто-нибудь может помочь мне, я был бы очень признателен.

ИЗМЕНИТЬ

Так что это реальный вопрос, который мне задали, но я думаю, что он также плохо сформулирован. «Подозрительные транзакции электронной коммерции включают заказы, размещенные покупателем в одной стране, которые отправляются в другую страну. На самом деле таких заказов в базе данных «Борей» нет, поэтому создайте несколько, изменив некоторые записи страны доставки «Германия» в базе данных. таблицу заказов на «Таити». Затем напишите запрос, который находит заказы, отправленные в другую страну, а не в страну клиента. Подсказка: для этого вам нужно будет присоединиться к таблице «Клиенты и заказы».


person FRALEWHALE    schedule 14.01.2016    source источник
comment
Когда вы задаете вопрос по sql, нам нужны некоторые основы. Какова ваша rdbms, схема базы данных, образец исходных данных и желаемый результат. Это очень помогает быстро получить ответ.   -  person Juan Carlos Oropeza    schedule 14.01.2016
comment
Извиняюсь. Я все еще новичок здесь, но мой друг сказал мне, что это хорошее место, чтобы получить помощь. Все, что я действительно могу вам сказать, это то, что моим желаемым результатом было бы написать запрос, показывающий, какие страны я изменил. Если вам нужна дополнительная информация, я сделаю все возможное, чтобы получить ее.   -  person FRALEWHALE    schedule 14.01.2016
comment
Чтобы было немного проще, как выглядят таблицы (т. е. какие столбцы находятся в таблице клиентов? в таблице заказов?)? Добавьте некоторые примеры данных из этих таблиц, которые иллюстрируют то, что у вас есть (например, в таблице «Клиенты» есть поле имени и страны, поэтому покажите нам, что есть парень по имени Джим Боб, который живет в Канаде). Затем покажите нам, что вы хотите, чтобы запрос возвращал (покажите, что строки должны содержать данные вашего примера данных). Это очень поможет.   -  person Becuzz    schedule 14.01.2016
comment
@FRALEWHALE Все в порядке, для справки посмотрите на этот вопрос. title="как суммировать столбец с условием сброса"> stackoverflow.com/questions/34702140/ Как данные отображаются в формате таблицы как текущие данные, так и желаемый вывод   -  person Juan Carlos Oropeza    schedule 14.01.2016
comment
@Beccuzz Да, я пытаюсь найти заказы, которые были отправлены в страны, отличные от тех, где живет клиент.   -  person FRALEWHALE    schedule 14.01.2016


Ответы (2)


Это то, что вы ищите:

SELECT *
FROM Customer AS C
INNER JOIN
Orders AS O
ON C.CustomerID = O.CustomerID
WHERE C.Country = 'Germany' AND  O.ShipCountry = 'Tahiti';

Приведенный выше запрос основан на схеме, определенной в CodePlex.

person Fuzzy    schedule 14.01.2016
comment
Его вопрос не очень хорошо написан, но я думаю, что он хочет знать, где C.Country ‹› o.ShipCountry - person Jack Marchetti; 14.01.2016
comment
Я думаю, что это действительно так. Он показывает страну как Германию, но страну кораблей как Таити. - person FRALEWHALE; 14.01.2016

Я надеюсь, что это может помочь вам

SELECT Orders.* 
FROM Orders  -- table name, also can use alias
inner join Customer -- table name, also can use alias
on Orders.ShipCountry = Customer.Country  -- you must declare what is the field to use by join
where Customer.Country in ('Germany','Tahiti') 
person Willians Escate    schedule 14.01.2016
comment
Судя по заголовку вопроса, похоже, что OP хочет, чтобы заказы были отправлены в страны, отличные от стран, в которых живет клиент (т. Е. Customer.Country! = Order.ShipCountry). Кроме того, объединение по стране (а не какому-то FK) приведет к какому-то сумасшедшему перекрестному объединению, которое не даст много значимых данных. - person Becuzz; 14.01.2016