好了,所以这里是我的数据库中提取SQL查询匹配表(分配)
customers- ID, Fname, LName, Username, Password
Products - ProductsID, Name
Requests - requestid, productsid[fk for products table], cid[fk for customers table],
quantity, matchType
sellers - saleid, productsid[fk for products table], cid[fk for customers table], quantity
price.
因此,他们是我的FK表示外键的表...现在我遇到的问题是说,这是从提取物表中的值
customers=1,John,Smith,js123,123
customers=2,Joe,bloggs,jb555,abc
products=1,Sweets
products=2, chocolate
requests=1, 2, 1, 200, Exact
requests=2, 1, 1, 50, HighQuality
sellers =1,2,2,200,5.00
确定,所以到底是怎么回事。这是我们的客户2和2个产品(糖果和chcolates),请求表显示..的RequestID [主键],产品ID,客户ID谁已请求产品,以克为单位的数量以及他们希望如何匹配显示。 因此,如果我们采取第一个请求,它会读取如下... REquestID 1 [pk],想要chcolates(2),想要choclate的用户是约翰史密斯,他想要200克的价值,这是完全符合他的要求... 现在我们有一个卖家,即joe bloggs,他以200英镑的价格销售200克chcolates ... 现在我遇到的问题是如何运行与此卖家相匹配的查询以适合客户。即列出了基于客户使用MatchType(预栅栏)卖家名称这是我曾尝试:
select c.Fname, c.Lname, p.Name FROM customers c, Products p, Requests, sellers
WHERE c.ID=sellers.cid AND p.ProductsID=sellers.productsid
这将列出所有卖家的名称和产品,他们正在销售的名称。但是,我希望仅显示那些在请求表中的单词是EXACT的产品。只能匹配确切的数量。所以,我试过:
select c.Fname, c.Lname, p.Name FROM customers c, Products p, Requests, sellers
WHERE c.ID=sellers.cid AND p.ProductsID=sellers.productsid
AND Requests.productsid=sellers.productid AND Requests.matchType ='Exact'
我试过这个,这不正确输出我想要的东西。我如何解决它我想我的输出是:
joe,bloggs,choclates
所以这匹配requestid 1其中。然而我只是不能得到这个输出可以有人pelase帮助我吗?当然,通过与products.id匹配sellers.productsid将显示名称,然后通过匹配请求.productid与seller.productid WHERE requests.matchType ='确切'它应该工作吗?但它不显示我期望的输出。
你给你想要的输出。你得到的输出是什么? – 2013-02-11 22:36:29