SQL选择所有匹配项

时间:2016-07-19 17:06:15

标签: mysql sql sql-server sql-server-2008

我从SQL-EX.RU

获得了这个SQL查询练习(#71)

本练习涉及两个表:

  1. 产品(制造商,型号,型号)
  2. PC(代码,型号,速度,内存,高清,CD,价格)
  3. 问题是:找到所有在PC桌上拥有所有PC型号的PC制造商。

    我写的版本是:

    self._initial_state = cell.zero_state(batch_size, tf.float32)
    

    但它没有完美的解决,有人能指出我错在哪里或提供更好的解决方案吗?谢谢!

2 个答案:

答案 0 :(得分:0)

这应该有效:

Select Maker
    From Products
    Where Maker Not In
        (
        Select P.Maker -- If one product is not in PC table PC.Code will be null
            From Products P
            Left Join PC On PC.Model = P.Model
            Where PC.Code Is Null
        )

答案 1 :(得分:0)

我认为以下效果很好。它很容易理解,并且可以很容易地修改以执行其他功能(“找到所有只缺1的人”等)

SELECT maker
FROM (
  SELECT maker,
       SUM(CASE WHEN PC.model is null THEN 1 ELSE 0 END) AS missing_count
  FROM Product
  LEFT JOIN PC ON Product.model = PC.model
  GROUP BY maker
) x
WHERE missing_count = 0