我目前正在研究一個涉及多對多和一對多關係的非常大的項目...有幾個表格可以使用,我無法弄清楚做我想做的事。 這是我的第一表(對象表):SQL查詢中複雜的條件
+-----------+------+-------+
| Object ID | Name | Value |
+-----------+------+-------+ The Object ID is a foreign Key to another table.
| 1 | Aaaa | 2 | The Name is unique for each Object ID.
| 1 | Bbbb | 5 |
| 2 | Aaaa | 15 |
| 2 | Bbbb | 3 |
+-----------+------+-------+
我的第二個表是以下的(用戶數據表):
+---------+------+-------+
| User ID | Name | Value |
+---------+------+-------+ The User ID is also a foreign Key, there are
| 7 | Aaaa | 10 | multiple rows with the same User ID.
| 7 | Bbbb | 7 |
+---------+------+-------+
我有表示其他表之間的關係的第三表
+---------+-----------+
| User ID | Object ID |
+---------+-----------+ There are no identical rows in this table.
| 7 | 1 |
+---------+-----------+
我正在嘗試查找用戶具有的對象表中的所有對象。用戶需要擁有所有的對象名稱。並且對於每個名稱,用戶的值必須至少爲該名稱的對象的值。
例如,此處用戶的Aaaa值爲10,Bbbb值爲7.因此,他具有對象1的所有名稱,且其值大於或等於這些值。 因此,他可以有對象n°1。 對於對象2,用戶沒有足夠的Aaaa,因此他不能擁有對象2.
我知道如何獲取所有行對象表格,用戶具有名稱和一個足夠大的值與內部聯接:
SELECT Users.User ID, Objects.Object, Objects.Name ID FROM Objects
INNER JOIN Users
ON Objects.Name = Users.Name AND Objects.Value <= Users.Value
但問題是,它會返回如下:
+---------+-----------+------+
| User ID | Object ID | Name |
+---------+-----------+------+
| 7 | 1 | Aaaa |
| 7 | 1 | Bbbb |
| 7 | 2 | Bbbb |
+---------+-----------+------+
的問題是,我想擺脫這是因爲用戶沒有e對象2的Aaaa的餘地。
任何幫助將不勝感激! 感謝
我真正想要的是,如果一個對象具有比用戶更高的價值,那麼所有使用相同的對象ID(但不同的名稱)不包括在內。在我的示例中,由於用戶沒有足夠的Aaaa來處理對象2,因此應該排除ID爲2的任何內容。所以7,2; Bbbb不應該顯示。我不完全確定這項工作。讓我看看。 感謝您的回覆。 – califrench