2014-12-03 2 views
0

У меня проблема с SQL. Я пытаюсь создать таблицы из других таблиц с внешними ключами. Таблица создается нормально без проблем, но когда я пытаюсь увидеть данные внутри таблицы, внутри нет данных! Кто знает?Таблицы, не отображающие ничего при создании нового

- Вот мой стол с внешними ключами

CREATE TABLE StaffXCustomersXMeals(
     --MealID int FOREIGN KEY REFERENCES Meals(MealID), 
     --CustomersID int FOREIGN KEY REFERENCES Customers(CustomersID), 
     --StaffID int FOREIGN KEY REFERENCES Staff(StaffID) 
    ) 
+1

ли Вы вставили какие-либо данные в таблицу? –

+0

Какая СУБД вы используете? Postgres? Oracle? Вы сделали свои заявления 'insert'? Btw: ваш пример создает таблицу без столбцов, потому что все определения столбцов комментируются. –

+0

Нет. Я вставил данные в другие таблицы! и никакой таблицы не было создано нормально, я просто прокомментирую это, чтобы попробовать что-то еще. –

ответ

0

Возможно, вы захотите рассмотреть вопрос о концепции SQL View - подумайте об этом как о «виртуальной таблице, основанной на результирующем наборе инструкции SQL». Когда вы создаете представление на основе JOIN между несколькими таблицами, он сохраняет ваш запрос, и вы можете выбрать его так же, как и таблицу.

Например, вы могли бы иметь следующее:

CREATE VIEW StaffCustomerMeals 
AS 

SELECT 
    m.MealID, 
    c.CustomersID, 
    s.StaffID 
FROM 
    Meals m 
    LEFT JOIN 
    Customers c ON 
     m.SomeIDThatMeansThisCustomer = c.CustomersID 
    LEFT JOIN 
    Staff s ON 
     m.SomeIDThatMeansAStaffMember = s.StaffID 

Вы должны определить эти отношения в соответствии с вашей собственной схеме - это ваше домашнее задание, поэтому сделать все возможное, чтобы понять это. Еще несколько вопросов для рассмотрения:

  1. Есть ли у еды всегда как клиент, так и сотрудник, или это клиенты, которые могут оказаться сотрудниками?
  2. Если включить другую информацию, кроме идентификаторов (например, CUSTOMERNAME, StaffMemberDepartment, MealPrice, PurchaseDate)
+0

Человек, которого вы очень хорошо! Спасибо, что вы очень помогли! Мне нужно также установить мои связи между моими таблицами! –

+0

Рад оказать помощь. Если этот или любой ответ поможет вам, не стесняйтесь повышать его, нажимая стрелку рядом с сообщением. – AHiggins

0

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

Для заполнения таблицы требуются данные INSERT, необходимые для любых данных.

+0

U означает, что я должен ввести данные в него? Я хочу, чтобы эта таблица отображала данные других таблиц! Тогда я должен делать внутренние стычки? –

+0

Если вам нужны все комбинации данных других таблиц, вам может не понадобиться другая таблица вообще, потому что вы всегда можете получить данные из других таблиц. Для чего нужно StaffXCustomersXMeals? Чего вы хотите достичь? –

+0

Пройдите курс! эта таблица должна показать, кто из персонала, для каких клиентов и какие блюда, но нормально! я понял, что вы имеете в виду. Спасибо –