Mysql 不同条件下的多条语句

Mysql 不同条件下的多条语句,mysql,Mysql,我有一个mysql表: CREATE TABLE `templates_assignments` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `type` int(11) NOT NULL DEFAULT '2' `assignment_id` int(11) NOT NULL DEFAULT '1', `template_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `

我有一个mysql表:

CREATE TABLE `templates_assignments` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `type` int(11) NOT NULL DEFAULT '2' 
  `assignment_id` int(11) NOT NULL DEFAULT '1',
  `template_id` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `template_id` (`template_id`),
) ENGINE=InnoDB AUTO_INCREMENT=122 DEFAULT CHARSET=latin1;

/*Data for the table `templates_assignments` */

insert  into `templates_assignments`
(`id`,`type`,`assignment_id`,`template_id`)
values 
  (15,1,1,1),
  (16,1,1,2),
  (19,1,1,6),
  (54,2,30,6),
  (55,1,5,11),
  (56,1,5,15),
  (57,1,5,22);
我想选择符合这两个条件的模板:

类型=2,分配id=30 类型=1,分配\u id=1 唯一应该返回的模板id是6,但我总是得到全部或一个都没有

我的查询条件类似于:

WHERE 
(
    (templatesAssignments.type=2 AND templatesAssignments.assignment_id=30) AND (templatesAssignments.type=1 AND templatesAssignments.assignment_id=1)
)

但是没有运气…我缺少什么?

TemplatesSignements.type=2和TemplatesSignements.assignment\u id=30或TemplatesSignements.type=1和TemplatesSignements.assignment\u id=1,但前提是它们不是独占的。没有运气,我找回了所有的Templates您必须使用别名将表连接到自身。@HannoBinder不确定它是什么意思是…我不是太mysql saavy:我没有尝试,只是因为我需要根据我的框架调整答案。反正是thx
select template_id
from templatesAssignments
group by template_id
having sum(type=2 AND assignment_id=30) > 0
   and sum(type=1 AND assignment_id=1) > 0
SELECT ta1.template_id
FROM templatesAssignments ta1
INNER JOIN templatesAssignments ta2 ON ta1.template_id = ta2.template_id
WHERE (ta1.type=1 AND ta1.assignment_id=1)
AND   (ta2.type=2 AND ta2.assignment_id=30)