当前位置: 首页 > 知识库问答 >
问题:

从wordpress(woocommerce)中的两个表中选择不同的值

费锋
2023-03-14
    null

    SELECT a.ID,a.post_title,b.post_id,b.meta_value FROM 
    (
        SELECT DISTINCT ID FROM wp_posts
        UNION
        SELECT DISTINCT post_id FROM wp_postmeta
    ) x LEFT JOIN
    wp_posts a ON x.ID = a.ID LEFT JOIN
    wp_postmeta b ON x.post_id = b.post_id

我什么也想象不到,有人来帮我吗?

----编辑----

@拉胡尔,

    SELECT a.ID, a.post_title, b.post_id, b.meta_value FROM wp_posts a
    LEFT JOIN (

        SELECT DISTINCT ID
        FROM wp_posts
    )xx ON a.ID = xx.ID
    LEFT JOIN (

        SELECT DISTINCT post_id
        FROM wp_postmeta
    )yy ON a.ID = yy.post_id
    LEFT JOIN wp_postmeta b ON b.post_id = yy.post_id
    WHERE a.post_type = 'product'
    AND a.post_status = 'publish'
    LIMIT 0 , 30

141  测试粉笔 ;   141        123

141  测试粉彩 ;   141        可见

共有1个答案

曾飞沉
2023-03-14

是,因为在子选择结果集中没有post_id列。您需要更改查询并将它们分开,如

SELECT a.ID,a.post_title,b.post_id,b.meta_value FROM
wp_posts a LEFT JOIN 
( SELECT DISTINCT ID FROM wp_posts ) xx ON a.ID = xx.ID
LEFT JOIN ( SELECT DISTINCT post_id FROM wp_postmeta ) yy 
ON a.some_common_column = yy.some_common_column
LEFT JOIN wp_postmeta b ON b.post_id = yy.post_id;

编辑:

根据您编辑的帖子;您需要获得行号,并获得非重复的行号,如下所示

SELECT ID, post_title, post_id, meta_value
FROM ( 
SELECT a.ID,
a.post_title,
b.post_id,
b.meta_value,
(@row_number:=@row_number + 1) AS rownum 
FROM wp_posts a
JOIN (SELECT @row_number:=0) r 
LEFT JOIN wp_postmeta b ON a.ID = b.post_id ) xxx
WHERE rownum = 1;
 类似资料:
  • 问题内容: 有这张桌子 和这个 我如何从表“项目”中选择所有行并显示字段“已删除”,即使在给定用户ID的情况下,即使“ MyList”中不存在itemID? 查询结果示例: 什么是查询,以便我可以得到该结果? 谢谢 问题答案: 我不确定这是否是最好的方法,但它会返回我一直在寻找的内容:

  • 问题内容: 我的SQL Server数据库中有两个表。第一个是,第二个是。两个表中都有一列。 现在,我想从两个表中选择一个特定的值。 这就是我在做的 但是我的查询给出了错误。 问题答案:

  • 问题内容: 所以这是我的设置,我有2个具有以下(简化)模式的旧表和新表 我正在寻找一种SQL查询,该查询返回以下内容,但在1个查询中包含4列,而不是每个2列包含2个查询 因此,我理想的结果集将包含4列: 谢谢! 问题答案: 您是否尝试过JOIN语句:

  • 假设我有两个表,我想计算它们的和差: 如何仅使用一个选择查询从每个员工中选择他们的SUM(工资)之间的差异? 例如: 最终结果将是这样的:

  • 问题内容: 我需要从3个表中获得不同的值。 当我执行此代码时: 我收到一条错误消息,提示我的“城市”一栏不明确。 我也尝试过这个: 有了这段代码,我的表什么都收不到。 让我向您展示我正在尝试做的事的示例: 我需要得到这样的结果 城市的顺序对我来说并不重要,我只需要拥有所有城市,每个城市应该只有一个代表。 任何的想法?我当时想在中使用,但没有连接,所以我不能使用它。 问题答案: 该关键字将返回结果列

  • 问题内容: 我在表Hyperlink中有两列,即源和目标,用于存储超链接的源和目标。 有两个涉及b和c的超链接。两个超链接之间的区别在于超链接的方向。但是,我的目标是无论任何方向都检索唯一的超链接。因此,对于从b到c和从c到b的超链接,我只想选择其中之一。任何人都会做。 因此,我的结果应如下所示: 到目前为止,我可以使用Java进行一些处理,然后再使用JDBC执行SQL语句。但是,当表很大时,这将