我有一張表,我希望能夠根據另一個相關表中的數據的存在進行排序,但我不確定我想在單個查詢中執行什麼操作。MySQL - 是否可以根據另一個表中的數據來排序來自一個表的數據?
例如,假設我有一個Products
表和一個Notifications
表。每個表都有一堆列,但爲此目的的重要列是Active
列,並且Notifications
表中的外鍵引用Products
表。 Products
表中的每一行可能在Notifications
表中引用0到N次。
Products Notifications
ProductID | Active NotificationID | ProductID | Active | Type
----------+------- ---------------+-----------+--------+-----
1 | 1 1 | 2 | 1 | 2
2 | 1 2 | 3 | 0 | 1
3 | 1 3 | 3 | 1 | 1
4 | 1 4 | 5 | 1 | 1
5 | 1 5 | 3 | 1 | 1
一種用途情況下,我想是支持從Products
表基於是否存在針對該產品的特定類型(Type = 1)的活動的通知的數據進行排序。因此,在上面的例子中,產品3和5要首先或最後整理,但所有五種產品仍應在結果集中。
我一直無法找到一種方法來在單個SELECT
聲明中進行管理。我可以輕鬆地拉取只有或沒有特定類型主動通知的產品,但我無法找到一種方法來一次獲得所有這些通知,並基於此進行分類。這是可能的還是我只需要運行幾個單獨的查詢?
謝謝!那很完美!我甚至沒有想過嘗試使用子查詢作爲'JOIN'的一半,但是這可以讓我完成我所需要的。 – MaineChap 2014-10-18 23:31:21