【发布时间】:2015-05-17 11:20:05
【问题描述】:
我正在做我的高中项目 我想为用户运行查询以使用多个类别搜索药物 这是ddl,
Create table medicine (
MedId int(11) NOT NULL AUTO_INCREMENT,
Name varchar(30) COLLATE utf8_bin DEFAULT NULL,
Vendor varchar(20) COLLATE utf8_bin DEFAULT NULL,
Quantity int(11) NOT NULL,
type text COLLATE utf8_bin NOT NULL,
price int(11) NOT NULL,
PRIMARY KEY (MedId)
);
create table category(
CatId smallint auto_increment,
Name varchar (20),
primary key(CatID)
);
create table MedicineCat(
MedId int,
CatId smallint,
foreign key (MedId) references medicine(MedId),
foreign key (CatId) references category(CatId),
primary key(MedId,CatId)
);
SELECT medicinecat.MedID AS 'MedId', medicine.Name AS 'Name', medicine.price AS 'Price', medicine.Quantity AS 'Quantity'
FROM medicinecat
JOIN medicine ON medicine.MedId = medicinecat.MedId
WHERE CatId in (1,2,3);
我得到的是至少有一个类别的所有药物,我知道这是因为 IN 子句, 我想要的是选择具有“所有类别”而不是类别之一的药物。
【问题讨论】:
-
MySQL 和/或 SQL Server? (不要标记未涉及的产品...)
-
感谢先生的提示,但 sql server 或 mysql 并不重要,我问的是任何一个产品都相同的 dml
标签: mysql sql sql-server sqlite relational-division