2

ユーザーとサイトの他のテーブル内にデータがない場合にのみ、あるテーブルからデータを選択しようとしています。

これは私がこれまでに持っているものです。

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」」が表示されます。

どうすればいいですか?

4

1 に答える 1

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 は、テーブルからすべてを選択linksuc.site_id IS NULLWHERE節で を使用して、他のテーブルに行がないことを確認します。実際には、そこからの名前である限り、どの列に名前を付けるかは重要ではありませんuser_clicks

于 2012-04-21T20:08:46.913 に答える