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』」を取得します。
どうすればよいですか?
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
ですべてのものを選択します。
このソリューションではエラーは発生しませんが、リンクデータベースにユーザーのエントリがない場合は何も返されませんサイト。 – Dave
@DavidMacaulayそれはあなたが求めていたものですか?いいえ?そして、あなたが達成したいことをもう一度説明してください。 – fancyPants