我有 2 个表,一个称为items,另一个称为sliders。
我想调用sliders.item_id = items.id的所有列,并且两者都已发布,因此items.published=1和sliders.published=1。但我也想调用 为 NULL 的sliders.item_id。
所以基本上就像一个右连接,我得到所有与约束匹配的相关记录,还有滑块表上不对应于项目表的记录。
简而言之,重点是:我想获得属于项目的所有滑块 (sliders.item_id=items.id) 和 (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 中转换。