私は1つはなど、テキストを保つためである、二つのテーブルのこの種を持っている、もう一つは1つのテーブルのみを左結合する方法はありますか?
pages table
、
pg_id pg_content parent_id
10 xxx 3
11 xxx 3
12 xxx 3
image table
、画像情報を保持するために
img_id pg_id img_order cat_id
1 10 1 1
2 10 1 2
3 10 2 2
4 11 1 1
だから私ですimg_order
1イメージのすべてのページをcat_id
から1つだけリストしたいのですが、ページにイメージがある場合は複写された行が得られますcat_id
2、
SELECT*
FROM root_pages
LEFT JOIN root_images_pages
ON root_images_pages.pg_id = root_pages.pg_id
WHERE root_pages.parent_id = '3'
AND root_pages.pg_id != '3'
AND (root_images_pages.img_order = '1' OR root_images_pages.img_id is NULL)
ORDER BY root_pages.pg_created DESC
LIMIT 12
どうすれば修正できますか?私はあるしたくなる
、
pg_id pg_content parent_id img_id pg_id img_order cat_id
10 xxx 3 1 10 1 1
11 xxx 3 4 11 1 1
12 xxx 3 null null null null
EDIT:
私はそういないイメージを持つページが表示されないことができ、クエリに以下の行を追加する必要があり、
AND (i.img_order = '1' OR i.img_id is NULL)
だからここには、
SELECT*
FROM root_pages p
LEFT JOIN root_images_pages i
ON i.pg_id = p.pg_id and i.cat_id = 1
WHERE p.parent_id = '3'
AND p.pg_id != '3'
AND p.pg_hide != '1'
AND (i.img_order = '1' OR i.img_id is NULL)
ORDER BY p.pg_created DESC
LIMIT 12
ありがとうございました!それは私が探している答えに近いです!私の編集で見てください。ありがとう。 – laukok