2015-09-04 40 views
0

如果用戶列在表rides中,我想將IsDriver設置爲1。否則IsDriver應爲0。如何將0/1指標的列添加到SELECT中?

SELECT rides.IdRide, users.IdUser, IsDriver 
FROM users, rides 
LEFT JOIN... 
WHERE rides.IdUser = users.IdUser 

輸出示例:

idRide | idUser | ISDriver 
1  | 1  | 0 
1  | 2  | 1 
2  | 1  | 1 
3  | 3  | 1 
+2

將CASE放入選擇列表中。 – jarlh

+0

順便說一句,不要混合舊式隱式連接語法和現代顯式連接... – jarlh

+0

@jarlh:請您在答案中舉個例子嗎? –

回答

1

更改您的查詢:

SELECT users.IdUser, (rides.IdUser is not null) as IsDriver, rides.IdRide 
FROM users 
LEFT JOIN rides ON rides.IdUser = users.IdUser 

它看起來像你的樣本輸出是不正確的。第一行必須有IdRide = null,因爲遊樂設施表中沒有相應的行。

1

嘗試這個

SELECT r.IdRide, u.IdUser, 
(CASE WHEN r.IdRide IS NOT NULL THEN 1 
    ELSE 0 
END 
)As IsDriver 

FROM users u 
LEFT JOIN rides r ON 
u.IdUser =r.IdUser 
+0

如果已定義,請在每個地方使用表別名。 (r.IdRide等)。 – jarlh

+0

用別名更新了代碼 –

+0

現在好多了! – jarlh

相關問題