首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL联合和连接

问MySQL联合和连接
EN

Stack Overflow用户
提问于 2016-11-09 00:23:08
回答 1查看 42关注 0票数 0

我有以下表格

代码语言:javascript
复制
purchase_order         item
------------------     ------------
id (PK)                id (PK)
deleted                deleted
name                   name
                       purchase_order_id (FK)

如何返回链接到未删除的非空purchase_order的所有项的列表,以及没有链接到它们的项的所有purchase_orders的列表(无论是否已删除)。

例如,示例表格

purchase_order

代码语言:javascript
复制
  id    name         deleted
  ---------------------------
  1     Big Sale     0
  2     Other Sale   1
  3     Empty Sale   0

项目

代码语言:javascript
复制
  id    name         deleted  purchase_order_id
  ----------------------------------------------
  1     Fruit        1        1
  2     Bread        0        1
  3     Water        0        2

正确的查询给出了如下结果:

代码语言:javascript
复制
po_id name          item_id  name
------------------------------------
1      Big Sale     2        Bread
3      Other Sale   NULL     NULL

Edit:这就是我要去的地方,但问题是规定i.deleted = 0,它会阻止任何没有连接到项目上的行返回

代码语言:javascript
复制
SELECT po.id, po.name, i.id, i.name
FROM purchase_order po
LEFT JOIN item i ON i.purchase_order_id=po.id
WHERE po.deleted = 0 AND i.deleted = 0
EN

回答 1

Stack Overflow用户

发布于 2016-11-09 00:43:27

@草莓给了我答案

代码语言:javascript
复制
SELECT po.id, po.name, i.id, i.name
FROM purchase_order po
LEFT JOIN item i ON i.purchase_order_id=po.id AND i.deleted = 0
WHERE po.deleted = 0
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40491822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档