我有2个表。第一个保存一些购物清单的总价值,第二个表保存该清单中的产品。当一个购物清单与像列表号的一些信息(nrList
这是某种形式的表ID)和产品该列表nrProducts
上的号码进行加总价值为total
表在一起,同时产品进入listproducts
表。可以说有3个产品tomato,oranges and apples
。他们都会共享相同的nrList
,正如前面提到的,它就像列表ID一样。比较两个表的值
第一个表totals
:
CREATE TABLE IF NOT EXISTS `totals` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nrList` int(11) NOT NULL,
`nrProducts` int(11) DEFAULT NULL,
`total` double NOT NULL,
`data` date DEFAULT NULL,
`ora` time DEFAULT NULL,
`dataora` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`Operator` varchar(50) DEFAULT NULL,
`anulat` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
)
二表listproducts
:
CREATE TABLE IF NOT EXISTS `listproducts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nrList` int(11) DEFAULT NULL,
`product` varchar(50) DEFAULT NULL,
`quantity` double DEFAULT NULL,
`price` double DEFAULT NULL,
`data` date DEFAULT NULL,
`operator` varchar(50) NOT NULL,
`anulat` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
现在,我有两件事情我想做的事情,他们都非常相似。 可以说,我有3 products.In的totals
表名单会有一些信息一行,并与total=10$
nrProducts=3
和nrList=1
。在listproducts
表我将有3行均具有nrList=1
且各自具有price=3$,3$,4$
。 现在,我要检查以下内容: 1.That如果nrProducts=3
值的话,我对我们的产品在其他表列表。 2.检查第一个表中的总和是否等于第二个表中的产品总和(数量*价格SUM)
我已经完成了一些工作,但是我不知道下一步该怎么做。 我设法用它来获取产品从第二个表中的每个列表中的号码:
SELECT nrList,operator,COUNT(*) as count FROM listproducts GROUP BY nrList
但我不知道如何比较,如果该值是没有做两个查询相同。
对于第二件事再说,我知道怎么弄的总和,但我不知道如何把它们没有做两个单独的查询比较。
SELECT SUM(price*quantity) FROM `listproducts` WHERE nrList='10' and operator like '%x%'
我也可以做一些事情,就像我在其他选择中所做的一样,这不是问题。
的问题是,我不知道该怎么做我想做的事情在一个单一的选择,而不是做两个比较them.I'm在Java中这样做,这样我可以比较,但我想知道如果我能在单个查询中做到这一点。
感谢和抱歉的长期职位。
酷,发现了一些新的东西,感谢您!谢谢 ! –