KDh*_*nji 1 mysql sql subquery
我在创建查询以从3个表中提取数据时遇到了麻烦.
我有一个job_skus桌子,skus桌子和stage桌子,我试图选择整个月jobNo的所有工作skus,例如显示4月份所有工作skus的列表.
表的结构是
Job_Sku example data
JobNo J4454 J4454
Sku (refences Product.Sku) 93339 9947
Quantity 500 600
Stage 1 2
Products
Sku(primary key) 93339 9947
Description Galvanised Nails Steel Rods 900mm
Stage
jobNo J4454 J4454
stage 1 2
date 04/04/2015 12/04/2015
Run Code Online (Sandbox Code Playgroud)
等等.
我想出了这个问题
SELECT jm.sku,jm.quantity,p.description
FROM stage as s, products as p, job_sku as jm
WHERE s.Date BETWEEN '2015-04-01' AND '2015-04-30'
AND jm.stage = s.stage AND p.sku = jm.sku
Run Code Online (Sandbox Code Playgroud)
但它似乎在查询中获取重复数据.我是否需要使用某种类型的连接,或者可能提取该日期的所有阶段并将结果加入到job_sku表中?
首先,使用正确的连接.您使用的连接样式已弃用.20多年来,
显式连接是ANSI SQL的一部分.
其次,如果你得到了正确的结果,但是有些行是重复的,那么你需要添加的就是 DISTINCT
SELECT DISTINCT jm.sku,jm.quantity,p.description
FROM stage as s
INNER JOIN job_sku as jm ON(jm.stage = s.stage)
INNER JOIN products as p ON(p.sku = jm.sku)
WHERE s.Date BETWEEN '2015-04-01' AND '2015-04-30'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |