尽管另一个表可能没有值,但连接两个表的SQL查询

米卡德利

我正在尝试查询两个Wordpress表,即。postspostmeta

基本上,我感兴趣的表和行看起来像这样:

| ---- ** posts ** ---- |    | -------- ** postmeta ** ---------- |
| ID       | post_type  |    | post_id  | meta_key   | meta_value |
|-----------------------|    |------------------------------------|
| 1        | player     |    | 1        | number     | 10         |
| 2        | player     |    | 2        | number     | 20         |
| 3        | player     |    | 3        | othre_key  | aaa        |
| 4        | other_type |    | 4        | other_key  | xxx        |
| 4        | other_type |    | 5        | other_key  | yyy        |
| 4        | other_type |    | 6        | other_key  | zzz        |

我想获取所有帖子,post_type = player根据是否存在postmeta.meta_value它们进行排序postmeta.meta_key = numberpostmeta

到目前为止,我已经知道了:

SELECT a.ID, a.post_title, b.meta_value, b.meta_key
FROM $wpdb->posts AS a
INNER JOIN $wpdb->postmeta AS b
    ON a.ID = b.post_id
    AND b.meta_key = %s
WHERE a.post_status = %s
    AND a.post_type = %s
GROUP BY a.ID
ORDER BY b.meta_value+(0) ASC, a.post_title ASC

...返回与他们相关联的数字后缀的玩家。

如何在同一查询中将没有后元的玩家附加到结果中,以使所需结果看起来像这样?

| --- ** result ** ---- |
| ID       | meta_value |
|-----------------------|
| 1        | 10         |
| 2        | 20         |
| 3        | null       |
菲利普·席尔瓦(Filipe Silva)

使用LEFT JOIN代替INNER JOIN

SELECT a.ID, a.post_title, b.meta_value, b.meta_key
FROM $wpdb->posts AS a
LEFT JOIN $wpdb->postmeta AS b
    ON a.ID = b.post_id
    AND b.meta_key = %s
WHERE a.post_status = %s
    AND a.post_type = %s
GROUP BY a.ID
ORDER BY b.meta_value+(0) ASC, a.post_title ASC

正如你可以看到在这个伟大的解释JOINSLEFT JOIN返回所有左表中的结果,并补充说,在右表,只要条件匹配的JOIN的信息。

至于INNER JOIN,仅返回符合联接条件的结果

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尽管另一个表可能没有值,但连接两个表的SQL查询

来自分类Dev

连接两个表,向我显示一个表中的记录,而另一个表中没有对应的值

来自分类Dev

连接没有公共列的两个表,但使用连接到两个表的另一个表

来自分类Dev

尝试在zip上连接两个表-一个表没有前导零,另一个表有前导零

来自分类Dev

比较两个表(一个表有什么,另一个表没有)

来自分类Dev

MySQL连接两个表,另一个字段具有最大值

来自分类Dev

如何仅使用一个查询从另一个表中选择两个不同的值?

来自分类Dev

SQL查询另一个表中的值

来自分类Dev

查询如何基于另一个表在一个表条件中使用求和操作连接两个表?

来自分类Dev

通过另一个表 postgresql 连接两个表中的数据

来自分类Dev

将表中的两个值匹配到表sql中的另一个值

来自分类Dev

将表中的两个值与表sql中的另一个值进行匹配

来自分类Dev

SQL:将两个表挂在另一个表的键上,没有所有组合

来自分类Dev

比较两个表(一个表所具有的,另一个表所没有的)

来自分类Dev

在我的SQL查询中,如何有一个包含从另一个表查询的值的列?

来自分类Dev

当一个表具有大量数据而另一个表具有少量数据时,在SQL Server中联接两个表

来自分类Dev

我如何从一个表中的两个查询中获取公用值并将其与MySql中的另一个表联接?

来自分类Dev

当两个值不匹配时从另一个表中获取数据并替换现有值

来自分类Dev

如何使用带有来自另一个表的值的 SQL 查询

来自分类Dev

当一个表有多个值时如何连接两个表

来自分类Dev

mysql - 如果其中一个具有另一个的外键,如何执行两个连接表的连接?

来自分类Dev

合并两个列的值,并插入到ms sql中的另一个表中

来自分类Dev

SQL Server查询以另一个表值更新一个表列值

来自分类Dev

两个 SQL 表中的任何一个都有一个值

来自分类Dev

尝试通过使用另一个表中的 id 值将两个表连接在一起

来自分类Dev

在 django 中对另一个表执行查询,但没有找到该表

来自分类Dev

根据两个表中设置的值,使用另一个表中的索引更新 MySQL 表

来自分类Dev

两个带有外键的表引用另一个NameError

来自分类Dev

MySql 慢查询,在两个表上都有一个连接和条件

Related 相关文章

  1. 1

    尽管另一个表可能没有值,但连接两个表的SQL查询

  2. 2

    连接两个表,向我显示一个表中的记录,而另一个表中没有对应的值

  3. 3

    连接没有公共列的两个表,但使用连接到两个表的另一个表

  4. 4

    尝试在zip上连接两个表-一个表没有前导零,另一个表有前导零

  5. 5

    比较两个表(一个表有什么,另一个表没有)

  6. 6

    MySQL连接两个表,另一个字段具有最大值

  7. 7

    如何仅使用一个查询从另一个表中选择两个不同的值?

  8. 8

    SQL查询另一个表中的值

  9. 9

    查询如何基于另一个表在一个表条件中使用求和操作连接两个表?

  10. 10

    通过另一个表 postgresql 连接两个表中的数据

  11. 11

    将表中的两个值匹配到表sql中的另一个值

  12. 12

    将表中的两个值与表sql中的另一个值进行匹配

  13. 13

    SQL:将两个表挂在另一个表的键上,没有所有组合

  14. 14

    比较两个表(一个表所具有的,另一个表所没有的)

  15. 15

    在我的SQL查询中,如何有一个包含从另一个表查询的值的列?

  16. 16

    当一个表具有大量数据而另一个表具有少量数据时,在SQL Server中联接两个表

  17. 17

    我如何从一个表中的两个查询中获取公用值并将其与MySql中的另一个表联接?

  18. 18

    当两个值不匹配时从另一个表中获取数据并替换现有值

  19. 19

    如何使用带有来自另一个表的值的 SQL 查询

  20. 20

    当一个表有多个值时如何连接两个表

  21. 21

    mysql - 如果其中一个具有另一个的外键,如何执行两个连接表的连接?

  22. 22

    合并两个列的值,并插入到ms sql中的另一个表中

  23. 23

    SQL Server查询以另一个表值更新一个表列值

  24. 24

    两个 SQL 表中的任何一个都有一个值

  25. 25

    尝试通过使用另一个表中的 id 值将两个表连接在一起

  26. 26

    在 django 中对另一个表执行查询,但没有找到该表

  27. 27

    根据两个表中设置的值,使用另一个表中的索引更新 MySQL 表

  28. 28

    两个带有外键的表引用另一个NameError

  29. 29

    MySql 慢查询,在两个表上都有一个连接和条件

热门标签

归档