2016-05-14 23 views
1

在MySQL中創建視圖時,我無法在創建的視圖中看到具有NULL值的行。在使用MySQL創建的VIEW中看不到NULL值

在這裏我們可以看到表mail_prijava enter image description here

和表status

enter image description here

所以,我想用下面

CREATE OR REPLACE VIEW 
v_mail_prijava_test 
AS 
SELECT 
mail_prijava.id, 
mail_prijava.naselje AS naselje, 
mail_prijava.ulica AS ulica, 
mail_prijava.email AS email, 
mail_prijava.napomena AS napomena, 
IFNULL(status.opis AS "test") AS status 
DATE_FORMAT(datum_unosa, "%d.%m.%Y.") AS datum_servisa, 
vrijeme_unosa 
FROM mail_prijava 
INNER JOIN status ON status.id = mail_prijava.status_id 
SQL代碼來創建表 mail_prijava和表 status VIEW

當使用上面的代碼,我得到這個表: enter image description here

問題是該行從表空值mail_prijava沒有顯示,我想知道這是爲什麼,是它可以顯示在創建視圖空行。

謝謝

回答

2

要獲得所有的行,包括那些沒有任何比賽在status表,你需要使用一個left join代替inner join

更改此:

INNER JOIN status ON status.id = mail_prijava.status_id 

要這樣:

LEFT JOIN status ON status.id = mail_prijava.status_id 

此外,您IFNULL線看起來很奇怪,你可能想:

IFNULL(status.opis, "test") AS status -- this will show "test" as status if it's null 
+0

真棒,就像魅力:) – Svinjica