gpt4 book ai didi

MySQL从多表、主表和元表查询

转载 作者:行者123 更新时间:2023-11-29 15:18:45 25 4
gpt4 key购买 nike

如果我有 2 个这样的表,您建议如何构建查询

'帖子'

  ID   |   post_cat   |   post_type   |   post_date
1 | 1 | 0 | xyz
2 | 3 | 1 | xyz

表格'post_meta'

p_id   |   meta_key   |   meta_value
1 | name | John
1 | location | NY
1 | age | 31
2 | name | Jane
2 | age | 26

要求:
1.我想得到如下结果:

 ID |  post_cat |  post_type |  post_date |  name |     location  |  age 
1 | 1 | 0 | xyz | john | NY | 31
2 | 3 | 1 | xyz | Jane | | 26
  • 当我尝试根据 post_meta > meta_key 获取结果时,您建议如何进行查询;例如搜索帖子,其中 post_meta.meta_key=location 且 meta_value=NY?
  • 最佳答案

    我会说在表之间使用 JOIN。如果您希望每个结果行有多个meta_key,请多次加入post_meta表,例如

    SELECT * FROM posts p
    JOIN post_meta m ON p.id = m.p_id
    WHERE m.meta_key = 'location' AND m.meta_value = 'NY'

    SELECT * FROM posts p
    JOIN post_meta mn ON p.id = mn.p_id AND mn.meta_key = 'name'
    JOIN post_meta ma ON p.id = ma.p_id AND ma.meta_key = 'age'

    您可以列出您真正想要的列,而不是全部 (*)。如果特定的meta_key是可选的,您可能还想使用LEFT JOIN

    关于MySQL从多表、主表和元表查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59525934/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com