MySQL如何在另一个表中选择一个表中的特定记录连接(1-many)哪个记录在1个字段上有条件?

时间:2016-04-27 01:22:38

标签: mysql

我有表"items"和表"offers",它们由i.item_id = o.item_id加入。

我们假设item_id = 1在商品表中有2条记录:一条记录​​为o.status = 0,另一条记录为o.status = 1

然后item_id = 2在商品表中也有2条记录,并且都有o.status = 0

如何仅选择其中没有o.status = 1项的记录?所以我只需要从项目表中选择item_id = 2的记录。

谢谢。

2 个答案:

答案 0 :(得分:0)

选择状态为1的商品ID,并从商品表中过滤。

select * from items where item_id not in (
select distinct item_id from offers where status=1)

以下是demo

答案 1 :(得分:0)

没有子查询的版本

def createGraph(start: Int, end: Int, name: String) = {
  RunnableGraph.fromGraph(GraphDSL.create() {
    implicit builder =>
      import GraphDSL.Implicits._
      val s = Source(start to end)
      val f = Flow[Int].map[String](x => x.toString)
      val sink = Sink.foreach[String](x => println(name + ":" + x))

      val t = builder.add(s)

      val flow1 = builder.add(f)

      t ~> flow1 ~> sink

      ClosedShape
  })
}


(1 to 10).map(x => createGraph(x, x + 10, "g" + x)).map(_.run())