gpt4 book ai didi

MYSQL 比较来自相同列的值

转载 作者:行者123 更新时间:2023-11-29 03:51:18 24 4
gpt4 key购买 nike

好吧,我试着查看了整个 stackoverflow,我找到的最接近的解决方案是: mysql AND clause on same column multiple times

但是我不能使用语句,并且“having”语法因为 group by 而无法工作。必须有一个简单的解决方案。

这 2 个表看起来像这样(简化):

用户:

uid  name
1 person 1
2 person 2
3 person 3

类别:

uid  value
1 actor
1 musician
2 actor
3 dancer
4 musician
4 dancer

我想获取同时为2个值的那些的uid。例如,我想获得一个 Actor 和音乐家的 UID。不仅需要一个值,而且必须同时提供这两个值!

首先我尝试了这个:

SELECT users.uid, users.name 
FROM
users
LEFT OUTER JOIN categories ON users.uid = categories.uid
WHERE (categories.value = 'actor' AND categories.value = 'musician')
GROUP BY u.uid;

这当然行不通,因为一行不能有 2 个值。

有人知道解决办法吗?

最佳答案

可以多次加入categories表得到结果:

SELECT users.uid, users.name 
FROM users
INNER JOIN categories c1
ON users.uid = c1.uid
INNER JOIN categories c2
ON users.uid = c2.uid
WHERE c1.value = 'actor'
AND c2.value = 'musician';

参见 SQL Fiddle with Demo

关于MYSQL 比较来自相同列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16690864/

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