Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与产品/打印机练习有关的sql连接问题_Sql_Sql Server - Fatal编程技术网

与产品/打印机练习有关的sql连接问题

与产品/打印机练习有关的sql连接问题,sql,sql-server,Sql,Sql Server,: 产品(制造商、型号、类型) 笔记本电脑(型号、价格、速度、ram、高清、屏幕) PC(型号、价格、速度、ram、高清) 打印机(型号、价格、颜色、价格) 我现在正在寻找最便宜的彩色打印机制造商 我的问题是: select maker, price from product join printer on product.model=printer.model where color='y' and price <= all(select price from printer wh

:

  • 产品(制造商、型号、类型)
  • 笔记本电脑(型号、价格、速度、ram、高清、屏幕)
  • PC(型号、价格、速度、ram、高清)
  • 打印机(型号、价格、颜色、价格)
我现在正在寻找最便宜的彩色打印机制造商

我的问题是:

select maker, price from
product join printer 
on product.model=printer.model
where color='y' and price <= all(select price from printer where color='y')
选择制造商,从中选择价格
产品连接打印机
在product.model=printer.model上

其中color='y'和price这应该可以满足您的需求:

SELECT Prd.Maker, Pri.Price
FROM Product Prd
INNER JOIN Printer Pri
    ON Prd.model = Pri.model
WHERE Pri.price = (
        SELECT MIN(Price)
        FROM Printer
        WHERE Color = 'Y'
        )
    AND Pri.Color = 'Y'

尝试使用
ALL
会使事情变得过于复杂。只需使用一个简单的子查询返回彩色打印机的最低价格。

更简单的方法是使用
Top
关键字和
order by
来查找具有最低价格的打印机。这将避免子查询

将结果与
产品
表联接,以查找
制造商

SELECT a.maker,b.price
FROM   product a
       JOIN(SELECT TOP 1 price,
                         model
            FROM   printer
            WHERE  color = 'y'
            ORDER  BY price ASC) b
         ON a.model = b.model 
更新:对于Mysql,请使用此选项

SELECT a.maker,b.price
FROM   product a
       JOIN(SELECT  price,
                         model
            FROM   printer
            WHERE  color = 'y'
            ORDER  BY price ASC limit 1) b
         ON a.model = b.model 

结果是正确的,就像我的一样。错误消息仍然是错误的same@Bob错误消息?你在我的查询中收到一条错误消息?你应该在上面加上b.price。即使这样,我也得到了正确的结果,但同样的错误message@Bob实际上,您正在运行此查询的位置。在我使用的
SSMS
中不会出现此错误,我认为它是MySQL 5.5.11、PostgreSQL 9.0和Oracle数据库11g@Bob你能分享这两个表格的样本数据吗。顺便说一句,为什么问题被标记为
Sql Server