簡體   English   中英

MYSQL-聯接1個表或另一個表(取決於是否存在匹配項)

[英]MYSQL - JOIN the 1 table or the other table depending if there is a match

我有一個稱為events的表,正在對此表進行選擇以顯示帶有選擇結果的網格。

events表中有一列稱為s_code s_code值來自suppliers表或members表。

我將如何執行單個JOIN檢查suppliersmembers表以獲取代碼的名稱,而不必像下面的查詢那樣對memberssuppliers表都進行LEFT JOIN 基本上,我只想擁有b.s_name ,而此時我同時擁有b.s_namec.s_name

SELECT a.s_id, b.s_name, c.s_name, a.s_date, 
       a.s_description, d.s_name, a.s_actiondate,    
       e.s_name, a.s_emailed, a.s_status 
  FROM events AS a 
     LEFT JOIN members   AS b ON a.s_code = b.s_code 
     LEFT JOIN suppliers AS c ON a.s_code = c.s_code 
     LEFT JOIN webuser   AS d ON a.s_userid = d.s_ai 
     LEFT JOIN webuser   AS e ON a.s_actionuserid = e.s_ai 
 WHERE a.s_status = 'A' 
   AND a.s_userid = '1' 
   AND a.s_transactionstatus = 'A'

剛剛凝聚的兩列進一個,如果第一個是非零回報,否則第二;

SELECT a.s_id, COALESCE(b.s_name, c.s_name) s_name, a.s_date, ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM