【问题标题】:Join two tables, in which second table needs to be joined many times加入两张表,其中第二张表需要多次加入
【发布时间】:2023-04-11 04:36:01
【问题描述】:

你好请看我的两张表和数据

 /* wp_posts */

 ID    post_title         post_type   post_status
 1     testproduct        product     publish

 /* wp_postmeta */

 meta_id   post_id   meta_key        meta_value
 1           1       _price           20
 2           1       _regularprice    30
 3           1       _stock_status    instock
 4           1        _qty             3

我需要从这两个表中获取所有数据以获取产品的每个详细信息。为此,我编写了以下查询,但它不起作用,请帮忙。

SELECT p.post_title,m.meta_key,m.meta_value FROM wp_posts p LEFT  JOIN wp_postmeta m LEFT JOIN wp_post_meta m1 ON p.ID = m.post_id AND m.meta_key = '_price' AND m1.meta_key= '_regular_price' WHERE p.post_status = 'publish' AND p.post_type = 'product'

【问题讨论】:

  • 每个左连接都需要指定ON,第二个左连接只有ON
  • 您同时拥有wp_postmetawp_post_meta 表?看起来很奇怪。

标签: mysql sql sqlite


【解决方案1】:

看起来你写的查询太复杂了。尝试简化。像这样

select p.post_title,m.meta_key,m.meta_value 
from wp_post p 
join wp_postmeta m on p.id=m.post_id 
where p.post_status = 'publish' AND p.post_type = 'product' and
(m.meta_key='_price' or m.meta_key='_regular_price')

【讨论】:

猜你喜欢
  • 2016-04-05
  • 1970-01-01
  • 2015-04-04
  • 1970-01-01
  • 2021-06-16
  • 1970-01-01
  • 1970-01-01
  • 2014-07-13
相关资源
最近更新 更多