簡體   English   中英

在mysql情況下的from子句

[英]from clause in mysql case

你好,我想要的是在下面的MySQL案例中從cluse中使用

我有三個表tab1,tab2和tab3選項卡1存儲所有字段選項卡2存儲數據,如果eore的值為1(eore是選項卡1中的一個字段,其值只能是1或2),如果值是2,則其數據存儲在選項卡3中

我想要的是獲取表2或3中的相關數據的選項卡1的所有數據

查詢是一樣的

select data1,dat2 case eore when '1' 
then select data14,data54,data56 from tab2 
when '2' then select data22,data34,data66 
from table3 end from table1 order by id desc limit 50

我試過的就像

 SELECT m.verify,m.mid,
CASE eore
WHEN '1' THEN c.mobile
     WHEN '2' THEN d.gender
  ELSE NULL END AS 'expose'
  FROM epmem m 
    INNER JOIN empl c ON c.rid = m.mid
   INNER JOIN comp d ON d.rid = m.mid
  ORDER BY m.mid DESC
  LIMIT 50

它沒有顯示結果.........

您不能使用這種情況,在每個查詢中只能有一個from caluse。 左鍵連接tab1上的tab2和tab3,並使用if()函數或大小寫結構確定要顯示的字段。

select tab1.*,
       if(eore=1,tab2.field1,tab3.field1) as field1,
       if(eore=1,tab2.field2,tab3.field2) as field2,
       ... 
from left join tab2 on tab1.id=tab2.id left join tab3 on tab1.id=tab3.id

我使用了假設字段來聯接表,您需要使用自己的聯接條件。

暫無
暫無

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

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