私は、結合されたテーブルの値に基づいて1つのクエリで複数のテーブルをクエリしようとしています。MySQL - nullの場合の高度なクエリと結合
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つのイメージにのみ一致します。
テーブル 'b'に一致するid、imagetype、およびimagecategoryがある場合のみ、2つのテーブルの結合が機能します。そうでなければ、テーブル 'a'のレコードだけが返されます。これは私が望むものではありません。テーブル 'b'はIFNULL関数を使って設定されたデフォルト値を返すようにしたいので、このテーブルにリンクされたIDの値がない場合でも完全な結果セットを取得します。
どうすればいいですか?
ありがとう、それはトリックでした!私はWHERE句をジョインに追加する以外はすべてを試しました! – Chris