2014-05-21 48 views
0

即时消息不知道如果我对这个字段做得很好calendar.type_event = NULL。现在对我很好,因为我需要将第二个SELECT区分为第三种类型。将一个值赋给SELECT语句上的一个字段

我想做点像calendar.type_event ='shared_event'来区分它。但返回一个0,用NULL返回什么都没有。这不是我只需要知道我是否可以分配自己的值的问题:'shared_event'。

非常感谢

整个查询:

(SELECT  
    id, type_event 
    FROM calendar 
    WHERE user_id = '.$user_id.'   
)  

UNION 

(SELECT 
    calendar.id, calendar.type_event = NULL 
    FROM calendar 
    RIGHT JOIN avisos ON avisos.app_id = calendar.id 
    WHERE avisos.user_destiny_id = '.$user_id.' 
) 

ORDER BY fecha_evento ASC 
+0

什么数据类型是'calendar.type_event'? –

+0

是一个字符串,有两种情况:'notice'或'event',需要在飞行中设置为'shared_event' – Theblabla

+0

好的,然后检查下面的答案。它应该工作。 –

回答

0

我需要知道,如果我能分配我自己的值:'shared_event'

是的,你可以。在地方calendar.type_event列的只是使用文字'shared_event'

SELECT 
     calendar.id, 'shared_event' 
    FROM calendar 
     RIGHT JOIN avisos ON avisos.app_id = calendar.id 
WHERE avisos.user_destiny_id = '.$user_id.' 
+0

我试了一下,它的工作原理与我想要的一样,非常感谢 – Theblabla

0

你应该能够做这样的事情:

(SELECT  
    id, type_event 
    FROM calendar 
    WHERE user_id = '.$user_id.'   
)  

UNION 

(SELECT 
    calendar.id, "shared_event" 
    FROM calendar 
    RIGHT JOIN avisos ON avisos.app_id = calendar.id 
    WHERE avisos.user_destiny_id = '.$user_id.' 
) 

ORDER BY fecha_evento ASC 
+0

谢谢,效果很好。 – Theblabla

-1

我认为这是你在找什么:

(SELECT  
    id, type_event 
    FROM calendar 
    WHERE user_id = '.$user_id.'   
)  
UNION 
(SELECT 
    calendar.id, '' type_event 
    FROM calendar 
    RIGHT JOIN avisos ON avisos.app_id = calendar.id 
    WHERE avisos.user_destiny_id = '.$user_id.' 
) 
ORDER BY fecha_evento ASC 

在第二个查询,type_event字段将包含空值。如果type_event字段是数字字段,则可以将0(ZERO)替换为''(空单引号/字符串)。

+0

不,'null'在概念上与空字符串或'0'数量不同(一般人会因为违反Oracle而感到恼火)。使用这种“标志”值会导致问题。如果它应该为空(如'缺少'),则将其保留为空 - 如果此处选择的值最终成为有效值,会发生什么情况? –

+0

此外,初始问题需要将字段“type_event”设置为联合中第二个select查询的字符串“shared_event”。 –

+0

我故意将'type_event'保存为'''',因为我认为@Theblabla只是想让'shared_event'的值来标识在第二个查询中找到的其他事件;它看起来像第一个查询将有'type_event'字段的值;所以无论空字符串是否给予'type_event',共享事件行都是可识别的。我使用空字符串来最大限度地减少查询产生的数据并提高速度。 –

相关问题