gpt4 book ai didi

mysql - 如何连接表A和表B而不重复表A中的行?

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

我正在尝试连接两个表:表 A 和表 B。表 A 的每一行都有唯一的 ID,并且在表 B 中也有相应的 ID,但在表 B 中,ID 可以出现多次。

每当我尝试内部联接时,由于表 B,我都会得到重复的行,所以我想知道如何在没有这些重复项的情况下进行联接。

基本上,我只想为表 A 的每一行提供表 B 中的一条记录,但它没有发生。

编辑:

从 wp_posts 中选择 p.post_title, tt.cntaccess as p INNER JOIN wp_top_ten as tt ON p.ID = tt.postnumber WHERE p.post_date > '2000-01-02 00:00:00' AND tt .cntaccess > '10'

最佳答案

这会将 a 与具有最新日期的相应 b 连接起来,如果有多个 b 匹配该条件,则连接具有最高 id 的 b。 b.id 和 a.id 假定是唯一的(或主键)。

SELECT a.id
, b.id
, b.date
FROM a
JOIN b
ON a.id = b.a_id
LEFT JOIN b AS b2
ON b.a_id = b2.a_id
AND (b.date, b.id) < (b2.date, b2.id)
WHERE b2.id IS NULL
;

这是我尝试根据您的逻辑使用您的表格。请注意,我指的是 tt.pk。该 pk 代表预期行为的唯一键或主键。您没有显示足够的详细信息来了解此信息。我没有测试过以下 SQL。以上测试SQL已测试通过。

SELECT p.post_title
, tt.cntaccess
, p.ID
, tt.pk
FROM wp_posts AS p
JOIN wp_top_ten AS tt
ON p.id = tt.postnumber
AND tt.cntaccess > '10'
LEFT JOIN wp_top_ten as tt2
ON tt.postnumber = tt2.postnumber
AND tt2.cntaccess > '10'
AND (tt.date, tt.pk) < (tt2.date, tt2.pk)
WHERE tt2.postnumber IS NULL
AND p.post_date > '2000-01-02 00:00:00'
;

关于mysql - 如何连接表A和表B而不重复表A中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12878339/

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