#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, нет?