- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 worker 表和一个关联的卡表:
CREATE TABLE IF NOT EXISTS `workers` (
`ID` varchar(20) NOT NULL,
`companyID` int(11) NOT NULL,
`FName` varchar(25) NOT NULL,
`Sname` varchar(25) NOT NULL,
`isAvailable` tinyint(4) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `workers`
ADD PRIMARY KEY (`ID`), ADD KEY `cmp_idx` (`companyID`), ADD KEY `isAvailable_idx` (`isAvailable`);
我需要检索一份 worker 列表,每个 worker 都有一个指示符,表明他们的卡是否尚未获得批准。
卡片表如下:
CREATE TABLE IF NOT EXISTS `cards2` (
`ID` int(11) NOT NULL,
`Name` varchar(200) NOT NULL,
`WorkerID` varchar(20) NOT NULL,
`pic` varchar(200) NOT NULL,
`expDate` bigint(20) NOT NULL,
`reminderSent` tinyint(4) NOT NULL,
`regNum` varchar(8) NOT NULL,
`cardType` varchar(200) NOT NULL,
`approvalStatus` tinyint(4) NOT NULL
) ENGINE=MyISAM AUTO_INCREMENT=95 DEFAULT CHARSET=latin1;
ALTER TABLE `cards2`
ADD PRIMARY KEY (`ID`), ADD KEY `cardsWorkerID_idx` (`WorkerID`);
approvalStatus 可以是 2(尚未确定)、1(已批准)或 2(未批准)因此,如果所有卡都获得批准,则返回的指示器应仅为绿色(1);如果任何卡尚未获得批准或未批准,则返回的指示器应为红色(0)。
检索 worker 的查询很简单:
SELECT distinct Workers.ID, FName, SName, companyID
FROM Workers WHERE companyID = ? and
and isAvailable = 1
LIMIT ?, 10
当尝试取回卡片指示符时,我尝试了以下操作:
SELECT Workers.ID, FName, SName,
COUNT(CASE WHEN approvalStatus = 0 or approvalStatus = 2 THEN 1 ELSE 0 end) AS cardStatus
FROM `workers`
inner join cards2 ON Workers.ID = Cards2.WorkerID
WHERE workers.companyID = 1
这只会返回一名 worker
更新如果用户没有关联的卡,它还应该标记为红色状态
最佳答案
您可以使用EXISTS
询问用户是否存在开放或未批准的卡:
select id, fname, sname, companyid,
case when exists
(
select *
from cards2 c
where c.workerid = w.id
and c.approvalstatus in (0,2)
) then then 'red' else 'green' end as status
from workers w
where companyid = ?
and isavailable = 1;
更新:以下是对没有卡片 = 红色的附加要求的查询:
select id, fname, sname, companyid,
case when exists
(
select *
from cards2 c
where c.workerid = w.id
and c.approvalstatus in (0,2)
)
or not exists
(
select *
from cards2 c
where c.workerid = w.id
) then then 'red' else 'green' end as status
from workers w
where companyid = ?
and isavailable = 1;
这里与使用 MySQL 三 bool 逻辑聚合的状态相同:
select w.id, w.fname, w.sname, w.companyid,
case when not c.bad then 'green' else 'red' end as status
from
(
select
workerid,
max(case when approvalstatus in (0,2) then 1 else 0 end) as bad
from cards2
group by workerid
) c
from workers w
where w.companyid = ? and
and w.isavailable = 1;
关于mysql - 查询从一个表和一个额外的列检索信息,这是另一个表的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34997452/
我配置了我的RouteInitializer如下: class AppRouteInitializer implements RouteInitializer { init(Router rout
我正在尝试从 Android 应用程序发送短信。我正在使用 PendingIntent 以便我可以使用 Broadcast Receiver 检查它是否发送正常。由于 sendTextMessage
目录 简介 1 "额外"字段是什么 1.1 "额外"是指与业务无关 1.2 产生
应用程序读取 JSON 数据。然后它会将其放入 ListView (正确),但在按下某个项目后,我总是会得到显示的相同值。下面的代码我认为是问题所在,但我找不到。 try{ JSONArray
我正在使用以下代码 (Kotlin) 创建通知 val builder = NotificationCompat.Builder(ctx) ........ .set
我有一个问题。现在我正在使用 3 个面板,mainPanel 和其他 2 个面板(btnPanel 和 iconPanel)。所以问题是当我按下“重置”按钮时,我删除了 iconPanel 并再次添加
这是我的 html: Settings Export Import 和CSS: span.button { float:right; margin-righ
我正在尝试将一个结构编码为 JSON,然后将其插入我的 Mongo 数据库,但不断出现此错误:%!(EXTRA main.Test={575590180 Me})。我究竟做错了什么?我完全从我从事的另
嘿,我遇到了这些 latex 格式问题,有人可以提供一些帮助吗? .tex 文件: \begin{table}{} \renewcommand{\arraystretch}{1.1} \c
我在 FragmentPagerAdapter 中使用了 Fragment 的 ArrayList。 我想在 saveState() 中保存此 ArrayList 的状态,并在 restoreStat
我做了this MapKit-教程 一切正常,但如何为我的 pin 添加额外的属性? 这是我的课车: import Foundation import MapKit class Car: NSObje
关于 Android intent 将提供的附加功能有哪些文档? 更新: 我做了一些进一步的调查。我知道我们可以假设每个 Intent 都不会解析任何数据或额外内容,除非有明确记录。此外,一些(但不是
我在 python3.4.3 上使用 SqlAlchemy 来管理 MySQL 数据库。我正在创建一个表: from datetime import datetime from sqlalchemy
我正在使用 bootstrap 创建网页。我在两个 block (内容和标题)上派生了正文。在内容 block 中,我有 div 类 .container .sameTable 在里面我有 div 类
我在Windows 7上的MinGW和MSYS下使用gfortran构建了一些fortran程序。但是当我在未安装MinGW和MSYS的其他计算机上运行它们时,系统总是要求一些dll,例如libgfo
第一个元素的右侧似乎有额外的间距,我不知道它是从哪里来的。有人可以帮助我吗? 这是我使用的代码: http://jsfiddle.net/srabeat/tenx4y1c/1/ for (i = 0;
我使用 fs-extra 收到以下错误: ERROR { [Error: EPERM: operation not permitted, unlink 'C:\Projects\xxx\branche
我正在尝试在 CBC 模式下使用 AES-128 加密 320 字节的二进制数据,并将密码存储到一个文件中。输出文件应该是 320 字节,但我得到了 336 字节。这是我的代码: #include
我有一个特定的要求,我必须从我的 Activity 中触发浏览器上的 url。我可以使用以下代码执行此操作: Intent browserIntent = new Intent( Intent.A
我正在使用 JMS DI 注入(inject)带有注解的服务: use JMS\DiExtraBundle\Annotation as DI; /** * @DI\Service("foo.bar.
我是一名优秀的程序员,十分优秀!