0

OK私は2つのselectステートメントを持っています

私がやりたいのは、im.alias_title =(in_image_alias_title OR a.user_id = user_id)AND a.authorized = in_album_authorized AND a.visible = in_album_visible;

2つの結果セットを識別する必要があります-クエリで別の列値を作成して、ユーザーのアルバムであるか、画像に属するアルバムであるかを確認する方法はありますか。画像には複数のアルバムを含めることができます。または、分離しておくのが最善です

/* Select all albums associated with an image */
SELECT a.alias_title, a.title, a.hits, a.created_on, a.updated_on, a.updated_by 
FROM album a 
INNER JOIN album_image ai ON a.id = ai.album_id 
INNER JOIN image im ON ai.image_id = im.id
WHERE im.alias_title =in_image_alias_title AND a.approved = in_album_approved AND a.visible = in_album_visible;

/* Select a users albums */
SELECT a.alias_title, a.title, a.hits, a.created_on, a.updated_on, a.updated_by 
FROM album a 
INNER JOIN album_image ai ON a.id = ai.album_id 
INNER JOIN image im ON ai.image_id = im.id
WHERE a.approved = in_album_approved AND a.visible = in_album_visible AND a.user_id = user_id;
4

1 に答える 1

0

説明するときにフィルター基準を指定し、ブール式の結果を使用して、レコードが元のクエリ/クエリのどれにあったかを示すことができます。

SELECT a.alias_title, a.title, a.hits, a.created_on, a.updated_on, a.updated_by,
       im.alias_title = in_image_alias_title AS q1,  -- was included in 1st query
       a.user_id      = user_id              AS q2   -- was included in 2nd query
FROM   album       a
  JOIN album_image ai ON a.id        = ai.album_id
  JOIN image       im ON ai.image_id = im.id
WHERE  (im.alias_title = in_image_alias_title OR a.user_id = user_id)
   AND a.approved = in_album_approved
   AND a.visible  = in_album_visible
于 2012-10-02T18:38:34.660 に答える