2016-11-10 159 views
-1

添加查詢基礎另一列我發現添加查詢中溶液通過情況下然後根據列的值相同的表,但它解決不了我的問題。有條件的其他查詢結果

我有兩個表。 表:

id date  title   description   
------ ---------- -------------- --------------------- 
    1 2016-11-10 This is pool 1 this is description 

表:

id date  time  pool_id option_id uid       
------ ---------- -------- ------- --------- ------------------------------ 
    1 2016-11-10 21:22:23  1   1 XodxfBfeRdZsOFRNbJ0AecMgpyo2 
    2 2016-11-10 21:22:23  1   2 PhbZ675XdZeL59QFKLQq8u1uQyg2 

我想通過傳遞UID查詢查詢輸出。

id date  title   voted   
------ ---------- -------------- --------------------- 
    1 2016-11-10 This is pool 1 YES 

回答

0

您可以LEFT JOIN 2表poolsvotes。然後檢查票中是否存在相應的條目,顯示YES否NO。

爲了更好的解釋,我在游泳池表中創建了1個條目。

INSERT INTO pools VALUES (2, '2016-11-11', 'This is pool 2', 'this is description'); 

下面的查詢會給你所需的輸出:

SELECT p.id, p.date, p.title, IF(v.id IS NOT NULL, 'YES', 'NO') AS voted 
FROM pools p LEFT JOIN votes v 
ON p.id = v.pool_id 
AND v.uid = 'XodxfBfeRdZsOFRNbJ0AecMgpyo2'; 

查詢說明

LEFT JOIN將從LHS表和NULL返回行從RHS表,如果相應的值沒有出現。

然後我們可以在SELECT聲明中添加一個支票來創建自定義列voted

輸出

id date  title   voted 
------------------------------------- 
1 2016-11-10 This is pool 1 YES 
2 2016-11-11 This is pool 2 NO