gpt4 book ai didi

mysql获取相对于另一个值在给定条件下不存在的行

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

我有如下表格:

+-----+-------+
| uid | value |
+-----+-------+
| 104 | L |
| 104 | M |
| 104 | N |
| 103 | Q |
| 101 | N |
| 102 | L |
+-----+-------+

现在我正在寻找的是获取 104 的值并将其与其他 uid 进行比较,如果没有找到则返回值,如下所示:

+-----+-------+
| uid | value |
+-----+-------+
| 101 | L |
| 101 | M |
| 102 | M |
| 102 | N |
| 103 | L |
| 103 | M |
| 103 | N |
+-----+-------+

在这里,104 有 L、M 和 N,所以我正在寻找其他没有 L、M 或 N 的值(相对于 104 的值),请注意,103 有 Q,但是因为它不在 104 中,我正在尝试与 104 进行比较,Q 在这里不相关,如何在 mysql 中获取它?

最佳答案

尝试以下基于CROSS JOINLEFT JOIN 的查询。

SELECT 
DISTINCT finalTable.uid,
finalTable.`value`
FROM
(SELECT
YOUR_TABLE.uid,
t.`value`
FROM YOUR_TABLE
CROSS JOIN (
SELECT
*
FROM YOUR_TABLE
WHERE uid = 104
) t
WHERE YOUR_TABLE.uid != 104
AND t.`value` <> YOUR_TABLE.`value`
) finalTable
LEFT JOIN YOUR_TABLE ON YOUR_TABLE.uid = finalTable.uid AND YOUR_TABLE.`value` = finalTable.`value`
WHERE YOUR_TABLE.uid IS NULL
ORDER BY finalTable.uid;

参见 Demo Here

关于mysql获取相对于另一个值在给定条件下不存在的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35810874/

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