現在、あるテーブルからオブジェクトをフェッチしようとしています。このため、私は、statsTableに 'oID
'と 'Date
'の両方の列に一致する行が含まれている限り、次の結合クエリを使用します。フォールバック値付きの2つのテーブルからカラムを取得
SELECT
o.ID as ID,
o.Image as Image,
o.Text as `Text`,
o.Views as `Views`,
o.Clicks as Clicks,
COALESCE(s.Views, 0) as DayViews,
COALESCE(s.Clicks, 0) as DayClicks
FROM objectTable o
LEFT JOIN statsTable s
ON o.ID = s.oID
WHERE o.userID = 1
AND DATEDIFF(CURDATE(), s.Date) < 1
LIMIT 1
statsTableに一致する行が含まれていない場合でも、結果の行を取得するためにクエリを変更する必要がありますか?
クエリでエラーが発生しないため、objectTableにデータがあることがわかっているので、空の結果を返すことは望ましくありません。
既に左結合を使用しています。それはansです。私が既に言ったように、条件なしでチェックしてください。 –
はい:左の結合の仕事** ** statsTableに参加するデータがある場合。しかし、データが入手できなくても結果が欲しい。 'Where'の代わりに何を使うべきですか? – DosMike1