假设我有两个商店。 Store A(22)
和Store B(21)
。这是获取与该商店ID匹配的事物查询:与多个状态的左连接
SELECT c . * , s.s_name, s.logo, s.s_slug, cm.c_code, cm.c_shorturl, cm.c_shorturl_id
FROM ci_cptbl c
LEFT JOIN ci_stores s ON s.store_id = c.store_id
LEFT JOIN ci_cptbl_mapper cm ON cm.c_id = c._id
WHERE c.coupon_id <> ''
AND c.store_id in ('22', '21')
AND s.s_status = '1'
AND c.c_status = '1'
AND DATE(c.c_end_date) >= '2014-10-04'
ORDER BY c.c_id DESC
ci_cptbl
拥有产品包括store_id
的集合。并且ci_stores
包含商店名称等,包括s_status
(0,1)。
CREATE TABLE `ci_stores` (
`store_id` int(10) NOT NULL AUTO_INCREMENT,
`cat_id` int(10) NOT NULL,
`s_name` varchar(255) NOT NULL,
`s_slug` varchar(255) NOT NULL,
`logo` varchar(255) NOT NULL,
`display_name` varchar(255) NOT NULL,
`s_description` text NOT NULL,
`network_id` int(10) NOT NULL,
`s_status` tinyint(1) NOT NULL DEFAULT '0',
`merged_stores` text NOT NULL,
`stat` bigint(20) NOT NULL,
PRIMARY KEY (`store_id`),
KEY `network_id` (`network_id`),
KEY `cat_id` (`cat_id`),
FULLTEXT KEY `display_name` (`display_name`)
) ENGINE=MyISAM AUTO_INCREMENT=127 DEFAULT CHARSET=utf8
现在的条件是我只有第一家店ID(22
)启用,其余的被禁用(21,......)我在商店表,我AND s.s_status = '1'
语句的工作只有当所有商店已启用,但我希望所有商店,包括禁用。
但首先STORE ID必须启用
这就是我想要的,但问题是,如果我禁用两者的门店状况则仍它回应结果,在这种情况下它不应该返回结果。 – 2014-10-06 04:20:16