結合されたテーブルの値に基づいて、1 つのクエリで複数のテーブルをクエリしようとしています。
SELECT a.id,a.name,
IFNULL(b.imageurl, 'default image url') AS 'imageurl',
IFNULL(b.imagecategory, '34') AS 'imagecategory',
IFNULL(b.imagetype, 't') AS 'imagetype'
FROM summary a
LEFT JOIN images i ON a.id = b.id
WHERE b.imagetype = 'thumbnail' AND b.imagecategory = '99'
テーブル 'a' はメイン テーブルで、オブジェクトに関するさまざまな情報で構成されます。
テーブル 'b' は、各オブジェクトの複数の画像 URL で構成されています。これらは、'imagetype' と 'imagecategory' を使用してフィルター処理され、各オブジェクトの 1 つの画像のみに一致します。
2 つのテーブルの結合は、テーブル 'b' の ID、imagetype、および imagecategory が一致する場合にのみ機能します。そうでない場合、それらを含むテーブル 'a' のレコードのみが返されますが、これは私が望むものではありません。テーブル 'b' が IFNULL 関数を使用して設定されたデフォルト値を返すようにしたいので、このテーブルにリンクされた id:s の値がない場合でも完全な結果セットを取得します。
これどうやってするの?