0

我有两个 SQL 查询需要转换为元组关系演算。第一个查询

SELECT immobilie.*
FROM immobilie
WHERE 'Preis'<'100000'

似乎很明显(如果我理解正确的话):

{w|w ϵ MAKLER ∧ w.Preis < `100000‘} 

但是第二个:

SELECT makler.*
FROM makler
JOIN immobilie
     ON makler.MaklerID = immobilie.angebotenVon
WHERE immobilie.Typ = 'Wohnung'

有一个连接,我找不到一个很好的例子,我需要如何转换它。谁能帮我解释一下?

4

2 回答 2

1

TRC 上的大部分资料似乎都是 pdf 格式。这可能与大量使用的符号有关。根据这个关于伯克利 CS 106的介绍,这应该有效:

{m|m ϵ MAKLER ∧ ∃i(i ϵ IMMOBILIE ∧ i.Typ = `Wohnung‘ ∧ i.angebotenVon = m.MaklerID)}

基本上,条件是一个元素应该存在于另一个查询中:对于从MAKLER确保存在的每个元组,有 ∃xists 元组,IMMOBILIE该元组具有Typ等于'Wohnung'angebotenVon等于所MaklerID考虑的元组。

不幸的是,我目前无法测试它。

于 2016-12-05T10:33:27.113 回答
1

您只需要将 JOIN 转换为 CROSS JOIN 并在 WHERE 子句中移动条件。然后很容易得到TRC翻译:

{ w | ∃i (w ϵ MAKLER ∧ i ϵ IMMOBILIE ∧ w.MaklerID = i.angebotenVon ∧ i.Typ = 'Wohnung') }
于 2017-01-12T11:54:46.710 回答