Создание сложного соединения / Создание ПРЕДСТАВЛЕНИЯ

#sql #join #view

#sql #Присоединиться #Вид

Вопрос:

Мне нужно создать сложный запрос соединения, который использует 3 таблицы, отображающие соответствие предопределенной форме заказа. В форме отображаются определенные данные из 2 таблиц и все данные из 3-й таблицы. В любом случае, в моей попытке потерпеть неудачу я подумал, что можно было бы сделать то же самое, создав табличное представление, которое объединяет нужные мне данные. Независимо от того, что я пытаюсь, я получаю синтаксическую ошибку, используя phpMyAdmin.

Последний код, который я пробовал, был следующим с синтаксической ошибкой unknonw.

 CREATE VIEW SAlES_ORDER
FROM customer_info, item_info, order_info
WHERE customer_info.CustomerID=1
AND order_info.OrderID=1
  

Мне нужна информация от customer 1 и OrderID 1, объединенные вместе со ВСЕЙ информацией о данных из таблицы Item. Я не понимаю, как создать это или просмотреть его, если на то пошло, поэтому я попробовал СОЗДАТЬ маршрут просмотра. Я чувствую, что мне здесь не хватает чего-то простого, и это последний шаг моего проекта по отправке этого.

Комментарии:

1. какова ваша целевая база данных? Oracle? Sql server? DB2? Доступ (Ха! я раскололся!)

2. базовый SQL. Нам посоветовали использовать SQLFiddle, но на момент начала моего проекта он не работал, поэтому я использовал установщик XAMP для настройки phpMyAdmin.

Ответ №1:

Вы упускаете некоторые части синтаксиса. Попробуй это:

 CREATE VIEW SAlES_ORDER AS
SELECT * 
FROM customer_info, item_info, order_info
WHERE customer_info.CustomerID=1
AND order_info.OrderID=1
  

Но если вы действительно не хотите перекрестного соединения, вам, вероятно, нужны правильные соединения с условиями:

 CREATE VIEW SAlES_ORDER AS
SELECT * 
FROM customer_info
JOIN order_info ON order_info.CustomerID = customer_info.CustomerID
JOIN item_info ON item_info.OrderID = order_info.OrderID
  

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

Комментарии:

1. Я думаю, что вы правильно используете маршрут соединения, поскольку в моей рубрике указан «Запрос соединения». Я попробую это сделать, и я не думаю, что мне нужно использовать для этого предложение Where. Кроме того, я не рассматривал возможность использования VIEW с JOIN или это единственный способ, которым я действительно увижу конечный результат? я уже пробовал запросы, которые приводили к «успеху», но визуально не показывали никакого результата.