#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 или это единственный способ, которым я действительно увижу конечный результат? я уже пробовал запросы, которые приводили к «успеху», но визуально не показывали никакого результата.