首页 > 解决方案 > 需要一种仅返回具有特定列条目的数据的方法

问题描述

我有一个作业问题,它指出以下内容:“列出所有产品成本高于其供应商位于佛罗里达州的产品的所有单个产品成本的产品”

我制作了一段代码,它遵循返回所需数据的逻辑,但它没有正确返回数据

起草了一段代码,使用逻辑来过滤我正在寻找的数据,不幸的是它不起作用。

SELECT DISTINCT P_DESCRIPT FROM product
-- select relevant column from table
join vendor
on vendor.V_CODE = product.V_CODE
-- join table and bridge data
where
P_PRICE > (P_PRICE AND vendor.V_STATE = 'FL')
/* Filter data to display only products that have a greater price than
products from florida vendors. */
;

当我运行它时,它会返回产品表中的所有产品,包括不是来自佛罗里达供应商的产品

标签: mysqlsqlmysql-workbench

解决方案


不存在:

select t.* from product t
where not exists (
  select 1 
  from product p inner join vendor v
  on v.v_code = p.v_code
  where 
    p.p_price > t.p_price
    and
    v.v_state = 'FL' 
)

或者:

select * from product
where p_price > (
  select max(p.p_price)
  from product p inner join vendor v
  on v.v_code = p.v_code
  where 
    v.v_state = 'FL' 
)

推荐阅读