2012-04-21 40 views
2

沒有行我試圖選擇從一個表中的數據只有在有其他表用戶和網站內的數據。如何選擇從MySQL行時有另一個表

這是我到目前爲止。

SELECT 
    l.link_id, 
    l.link_name, 
    l.link_points, 
    l.link_time, 
    COUNT(uc.user_id) AS clicks 
FROM 
    links AS l LEFT OUTER JOIN 
    (SELECT user_id, site_id FROM user_clicks WHERE site_id = l.link_id AND user_id = ".$user['user_id'].") as uc 
    USING (link_id) 
GROUP BY 
    l.link_id 

這是我在它當前的嘗試,但我「在‘where子句’未知列‘l.link_id’」試圖拉在外部數據時加入得到。

我怎麼去呢?

回答

1

在這裏,這應該工作:

SELECT 
    l.link_id, 
    l.link_name, 
    l.link_points, 
    l.link_time, 
    COUNT(uc.user_id) AS clicks 
FROM 
    links AS l LEFT JOIN 
    user_clicks uc ON uc.site_id = l.link_id 
WHERE user_id = ".$user['user_id']." 
    AND uc.site_id IS NULL 
GROUP BY 
    l.link_id 

的LEFT JOIN表links與您確認WHERE子句中的uc.site_id IS NULL選擇的一切,有另一個表中沒有行。其實這並不重要,你的名字哪一列在那裏,只要從user_clicks

+0

這個方案不會產生任何錯誤,但也就是不返回任何東西,當它的鏈接數據庫沒有對用戶和入門現場。 – Dave 2012-04-22 16:59:03

+0

@DavidMacaulay這就是你要求的嗎?沒有?然後請再解釋一下,你想達到什麼目的。 – fancyPants 2012-04-22 23:43:01

相關問題