В реляционной алгебре SQL как я могу выбрать строку, которой нет в другой таблице

#mysql #sql #database #relational-algebra

#mysql #sql #База данных #реляционная алгебра

Вопрос:

Итак, например, у меня есть две таблицы, Order и QualifiedOrder

ПОРЯДОК

 Order# | Customer#
------------------
16     |   7

23     |   9 

21     |   2  

59     |   5
  

QualifiedOrder

 QualifiedOrder# | DateApplied
----------------------------- 
23              |  9/10/16

21              | 10/2/15
  

как перечислить порядок, который не указан? (перечислите только данные в таблице order, которых нет в таблице QualifiedOrder) в реляционной алгебре

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

1. Пожалуйста, покажите, что вы пробовали. Например, какие строки, где Order # — это номер заказа? Какие строки, в которых QualifiedOrder# является номером заказа для определенного заказа? Какие строки, где Order # — это номер заказа для определенного заказа? Какие строки, где Order # amp; Customer — это номер заказа и customer для квалифицированного заказа? PS Какой реляционный оператор выдает вам строки из таблицы, которых нет в другой таблице?

2. Почему вы помечаете sql или mysql? Что SQL делает в вашем названии?

3. Order antijoin QualifiedOrder ?

4. В реляционной алгебре это называется «кортежем» в «отношении», а не «строкой» в «таблице». И вы ищете «антисоединение» двух отношений. en.wikipedia.org/wiki /…

Ответ №1:

Запустите следующую команду и, пожалуйста, измените имена ORDER и Order на любые другие, поскольку ORDER это ключевое слово для sql.

 SELECT 
    Order 
FROM 
    ORDER 
WHERE 
    Order not IN (
        SELECT 
            QualifiedOrder 
        FROM 
            QualifiedOrder
    )
  

Другой способ с помощью join :

 SELECT 
   ORDER.Order
FROM 
   ORDER 
JOIN 
   QualifiedOrder
ON
   ORDER.Order <> QualifiedOrder.QualifiedOrder
  

И попробуйте изменить последний запрос на relational algebra.

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

1. как вы пишете это в реляционной алгебре?

2. @student001 databasteknik.se/webbkursen/relalg-lecture проверьте это

3. Ваш первый запрос — это реляционное исчисление SQL, нет?