mysql 連線條件 mysql條件連線取決於列

2021-10-20 22:37:15 字數 1678 閱讀 6548

我正在嘗試實現乙個通用的通知系統。

notification_base:id,type,object

notificiation_sub:id,user_id,not_base_id,lastnotifytime

notification_action:id,user_id,not_base_id,action,creationdate

因此,基本方案是,使用者通過發布狀態來建立通知基礎項,或上傳**等(在這種情況下,**是指notify_base表中的型別字段,而object_id是post_id或photo_id取決於型別)然後使用者訂閱為此通知基專案。(使用者3訂閱notification_base

5,最後通知時間x)

我想要的是如果上次notifiytime小於通知操作,則從使用者訂閱中獲取notification_base專案,然後將它們與notification_action一起加入。

對於使用者id 3;

select * from notification_action

inner join notification_base on notification_action.not_base_id = notification_base.id

inner join notification_sub on notification_action.not_base_id = notification_sub.not_base_id

where notification_sub.user_id = 3 and notification_sub.lastshowdate < notification_action.creationdate ;

結果幾乎就是我想要的

使用者x對您的物件執行了「操作」,該物件在時間t具有「型別」和object_id

但我也想根據型別來連線object_id。因此,我可以實際了解所接觸的物件。但是如您所見,type是動態的,如果type = post object

id引用了post表上的post_id,如果type = photo object id引用**表等上的photo_id。

我嘗試這樣做,但是出現語法錯誤;

select *

from notification_action

inner join notification_base

on notification_action.not_base_id = notification_base.id

inner join notification_sub

on notification_action.not_base_id = notification_sub.not_base_id case notification_base.type

when 'photo'

then (

inner join photo

on photo.id = notification_base.object_id

else (

inner join post

on post.id = notification_base.object_id

endwhere notification_sub.user_id = 3

and notification_sub.lastshowdate < notification_action.creationdate;

我知道這是不正確的,就像偽**

mysql遠端連線條件 MySql 遠端連線的條件

1 首先看伺服器防火牆 引用 centos 7.0預設使用的是firewall作為防火牆,使用iptables必須重新設定一下 1 直接關閉防火牆 systemctl stop firewalld.service 停止firewall systemctl disable firewalld.serv...

02條件查詢 MySQL

條件查詢 語法 select 查詢列表 from 表明where 篩選條件 分類 一 按條件表示式刪選 條件運演算法 和 一樣 二 按邏輯表示式篩選 邏輯運算子 and or not 三 模糊查詢 萬用字元 代表任意多個字元,包括0個字元 代表乙個字元 注意 和 代表 和 like between ...

列舉mysql的約束條件 MySql約束條件彙總

約束條件約束條件是在表上強制執行的資料檢驗規則 用來保證建立的表的資料完整性和準確性 主要在兩方面對資料進行約束 空值和重複值 主鍵約束 primary key 每個表只能由乙個主鍵 主鍵值須非空不重複 可設定單字段主鍵,也可設定多欄位聯合主鍵 聯合主鍵中多個欄位的取值完全相同時,才違反主鍵約束 新...