2016-12-16 49 views
1

在以下示例中,爲了說明我的問題,在要顯示在網格上的行上,Marge可以看到第1行,Bart行2和Homer第1行和第2行。子查詢。獲取每個用戶的附加條件

如果用戶是Marge和Marge在users_list上,她可以看到第1行:

//tab_rows 

id rows user_ref 
__ ____ ________ 

    1 row1 1 
    2 row2 2 

//tab_users 

    id_users user_ref users_list color 
    ________ _______ __________ _______ 

    1   1   Marge  Red 
    2   1   Homer  Blue 
    3   2   Bart   Black 
    4   2   Homer  Green 

SELECT rows FROM tab_rows 
WHERE user_ref IN (SELECT user_ref FROM tab_users 
        WHERE users_list = 'Marge') 

This Works。

我的問題是,我還需要從與以下目的客戶端的色列獲取值:

在這個例子中,瑪吉和荷馬可以同時看到第1行

然而如果用戶是Marge,那麼該行會以紅色顯示;如果用戶是荷馬,則行將以藍色顯示。

(每個用戶可以在不同的行上有不同的顏色,與荷馬一樣)。

在客戶端,我將使用渲染函數根據顏色的值動態地執行此操作。

這樣做的最好方法是什麼?

我需要第二個查詢來獲取與每個行中的每個用戶對應的顏色?

+0

加入tab_rows表到user_ref表;那麼您可以將顏色添加到選擇列表中。 – Anand

+0

感謝阿南德的消化。 – josei

回答

1

你可以使用一個加入

select a.rows, b.color 
from tab_rows as a 
inner join tab_users as b on a.user_ref = b.user_ref 
where b.userlist = 'Marge'; 
+0

謝謝scaisEdge。 – josei