假設我有兩個商店。 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