2 つのテーブルがあり、1 つはitemsと呼ばれ、もう 1 つはSlidersと呼ばれます。
私は、sliders.item_id = items.idであるすべての列を呼び出したいと思っています。しかし、NULLであるsliders.item_idも呼びたいです 。
したがって、基本的には、制約に一致するすべての関連レコードだけでなく、項目テーブルに対応しないスライダー テーブルのレコードも取得する右結合のようなものです。
簡単に言うと、ポイントは次のとおりです。アイテム (sliders.item_id=items.id) AND (sliders.published=1 AND items.published=1) に属するすべてのスライダーを取得したいのですが、item_id=null のスライダーも取得したいと考えています。
機能するクエリを作成しましたが、満足できません。
select *
from items
right join sliders
on items.id = 27
and items.id = sliders.item_id
and items.published = 1
where sliders.published = 1
テーブル
CREATE TABLE IF NOT EXISTS `items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(30) NOT NULL,
`item_description` text NOT NULL,
`published` int(11) NOT NULL,
PRIMARY KEY (`id`)
)
CREATE TABLE IF NOT EXISTS `sliders` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`pic_path` text NOT NULL,
`item_id` int(11) DEFAULT NULL,
`published` int(11) NOT NULL,
PRIMARY KEY (`id`)
)
最初に、基本的な MySQL クエリでそれが必要です。後で CakePHP に変換できるからです。