MySQL:如何从另一个表的列中选择数据

更简单

我有以下选择语句:

  SELECT
    items.id,
    items.name AS item_name,
    items.tobuy,
    items.list_id,
    items.note,
    items.unit,
    MIN(NULLIF(packages.ppu, 0)) AS mppu,
    packages.price AS mprice,
    items._deleted
  FROM
    items
  INNER JOIN
    lists ON lists.id = items.list_id
  LEFT JOIN
    packages ON items.id = packages.item_id
  WHERE
    lists.user_id = 1 AND
    items._deleted = '0'
  GROUP BY
    items.id
  ORDER BY
    tobuy DESC,
    item_name

但是我真正想要的是价格来自具有最小ppu的包装(不一定是具有最小价格的包装)。

有任何想法吗?

样本记录:

表:项目:

id,  name,  tobuy, list_id, note, unit, _deleted
95,  test1, 1,     1,       null, null, 0
69,  test2, 1,     1,       null, null, 0
194, test3, 1,     1,       null, null, 0
162, test4, 1,     1,       null, null, 0

表:列表:

id, name,  user_id
1,  list1, 1

表:软件包:

id,  item_id, price, ppu
392, 95,      0,     0
117, 95,      13.49, 0.078
391, 95,      0,     0
386, 69,      0,     0
387, 69,      0,     0
388, 69,      0,     0
368, 194,     4.58,  0.138
18,  194,     3.38,  0.177
17,  194,     3.88,  0.144

结果应为包含以下信息的四个项目:

id,  item_name,  tobuy, list_id, note, unit, mppu,  mprice, _deleted
95,  test1,      1,     1,       null, null, 0.078, 13.49,  0
69,  test2,      1,     1,       null, null, 0,     0,      0
194, test3,      1,     1,       null, null, 0.138, 4.58,   0
162, test4,      1,     1,       null, null, 0,     0,      0

请注意,项目162没有任何相应的程序包,但仍显示在列表中。这就是“ LEFT JOIN”的原因

顺便说一句,“ mppu”代表“最低单位价格”

更简单

以下工作可以得到我想要的结果。

SELECT * FROM (  
  SELECT
    items.id,
    items.name AS item_name,
    items.tobuy,
    items.list_id,
    items.note,
    items.unit,
    NULLIF(packages.ppu, 0) AS mppu,
    packages.price AS mprice,
    items._deleted
  FROM
    items
  INNER JOIN
    lists ON lists.id = items.list_id
    AND lists.user_id = 1 
  LEFT JOIN
    packages ON packages.item_id = items.id
  WHERE
    items._deleted = '0'
  ORDER BY
    tobuy DESC,
    item_name,
    IFNULL(mppu, 999999)) x
GROUP BY
  x.id
ORDER BY
  tobuy DESC,
  item_name

感谢大家提供的帮助,以帮助我完成此任务。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL:如何从另一个表的列中选择数据

来自分类Dev

如何通过引用MySQL中的另一个表从表中选择数据

来自分类Dev

如果mysql中的另一个表上不存在数据,如何从另一个表中选择数据

来自分类Dev

从另一个表中选择数据

来自分类Dev

MySQL从另一个表中选择sum()

来自分类Dev

MYSQL:如何根据另一个表中的数据选择列?

来自分类Dev

如何从另一个表中选择

来自分类Dev

如何从基于MySQL中另一个表的表中选择

来自分类Dev

mysql插入值,并从另一个表中选择数据

来自分类Dev

MySQL Advanced从另一个表中选择查询检查数据

来自分类Dev

mysql 从另一个数据库插入到表中选择

来自分类Dev

从与另一个表连接的内部表中选择*时如何使用列别名

来自分类Dev

如何从一个表中选择数据并插入另一个表中?

来自分类Dev

当能力在另一个表中时,如何从一个表中选择数据?

来自分类Dev

如何从一个表中选择数据并插入另一个表中?

来自分类Dev

如何使用mysql,php从另一个表中选择照片

来自分类Dev

从表中选择,其中列从laravel中的另一个表中选择

来自分类Dev

从表中选择,其中列从laravel中的另一个表中选择

来自分类Dev

如何从一个表中选择数据并将其插入到带有新列的另一个表中

来自分类Dev

MySQL:如何从一个表中选择从另一个表获取的每个间隔之间的行

来自分类Dev

从一个表中选择多个列,然后将数据插入到PHP-MySQL中另一个数据库中的另一个表中

来自分类Dev

SQL-如何从另一个表中选择列别名?

来自分类Dev

根据另一个表的频率从一个表中选择列?

来自分类Dev

从一个表中选择所有列,从另一个表中选择 1 列

来自分类Dev

从一个表中选择数据,从另一个表中选择条件

来自分类Dev

PHP MySQL从一个表中选择ID,从另一个表中选择照片

来自分类Dev

从一个或另一个表中选择数据的最佳方法

来自分类Dev

使用另一个表的数据从表中选择数据

来自分类Dev

如何使用JOIN从另一个表中选择一个值

Related 相关文章

  1. 1

    MySQL:如何从另一个表的列中选择数据

  2. 2

    如何通过引用MySQL中的另一个表从表中选择数据

  3. 3

    如果mysql中的另一个表上不存在数据,如何从另一个表中选择数据

  4. 4

    从另一个表中选择数据

  5. 5

    MySQL从另一个表中选择sum()

  6. 6

    MYSQL:如何根据另一个表中的数据选择列?

  7. 7

    如何从另一个表中选择

  8. 8

    如何从基于MySQL中另一个表的表中选择

  9. 9

    mysql插入值,并从另一个表中选择数据

  10. 10

    MySQL Advanced从另一个表中选择查询检查数据

  11. 11

    mysql 从另一个数据库插入到表中选择

  12. 12

    从与另一个表连接的内部表中选择*时如何使用列别名

  13. 13

    如何从一个表中选择数据并插入另一个表中?

  14. 14

    当能力在另一个表中时,如何从一个表中选择数据?

  15. 15

    如何从一个表中选择数据并插入另一个表中?

  16. 16

    如何使用mysql,php从另一个表中选择照片

  17. 17

    从表中选择,其中列从laravel中的另一个表中选择

  18. 18

    从表中选择,其中列从laravel中的另一个表中选择

  19. 19

    如何从一个表中选择数据并将其插入到带有新列的另一个表中

  20. 20

    MySQL:如何从一个表中选择从另一个表获取的每个间隔之间的行

  21. 21

    从一个表中选择多个列,然后将数据插入到PHP-MySQL中另一个数据库中的另一个表中

  22. 22

    SQL-如何从另一个表中选择列别名?

  23. 23

    根据另一个表的频率从一个表中选择列?

  24. 24

    从一个表中选择所有列,从另一个表中选择 1 列

  25. 25

    从一个表中选择数据,从另一个表中选择条件

  26. 26

    PHP MySQL从一个表中选择ID,从另一个表中选择照片

  27. 27

    从一个或另一个表中选择数据的最佳方法

  28. 28

    使用另一个表的数据从表中选择数据

  29. 29

    如何使用JOIN从另一个表中选择一个值

热门标签

归档