gpt4 book ai didi

mysql - 在 mysql 中使用 union 检索 uniq 记录

转载 作者:行者123 更新时间:2023-11-30 22:33:39 26 4
gpt4 key购买 nike

我有两个表 usersin 和 usersout(我不能更改模式,否则很多系统更改必须在 php 中完成)。我应该在查询中获取所有用户记录,但我应该标记它们是进还是出,而且用户可能有进出记录,如果有进出记录,我不应该在记录中显示。

我在 SQL Fiddle 中创建了包含示例数据的表:http://www.sqlfiddle.com/#!9/ac99a/1/0

你能帮我如何删除这个联合查询中的重复用户记录吗?

最佳答案

如果您希望所有条目在 in 表或 out 表中都有一个条目,但不在这两个表中,那么完全外部连接将是您的 friend 。

由于 MySQL 不知道这种连接,您可以使用左外连接和右外连接组合来模拟它,如下所示:

SELECT 
ui.id, ui.user, 'i'
FROM
usersIN ui
LEFT OUTER JOIN
usersOUT uo ON ui.user = uo.user
WHERE uo.id IS NULL
UNION
SELECT
uo.id, uo.user, 'o'
FROM
usersIN ui
RIGHT OUTER JOIN
usersOUT uo ON ui.user = uo.user
WHERE ui.id IS NULL;

这应该会给你正确的输出。

连接的一个很好的可视化解释可以是 found here

关于mysql - 在 mysql 中使用 union 检索 uniq 记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33165586/

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