簡體   English   中英

當另一個表中沒有行時如何從MySQL選擇行

[英]How to select a row from MySQL when there are no rows in another table

我試圖僅從一個表中選擇數據,前提是該用戶和站點的另一表中沒有數據。

到目前為止,這就是我所擁有的。

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'未知列”。

我該怎么辦?

這在這里應該工作:

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命名哪一列就user_clicks

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM