mysql - 根据条件从表中返回一个条目,该条目不在另一个表中

标签 mysql

我需要查询方面的帮助,但我不知道如何使其工作。

表1

uid | G | L
------------ 
cde   2   1
fgk   1   2
kgl   2   1

表2

uid1 |uid2
-----------
abc    cde
fgk    cde
mnm    kgl

我有一个已知的 uid,它是

 uid | G | L
 -----------
 abc   1   2

我必须将此 uid 与 Table1 中的一个相匹配

我对此的查询是:

SELECT * FROM Table1 WHERE G=2 AND L=1 ORDER BY RAND() LIMIT 1

这将返回:

cde   2   1
kgl   2   1

我正在查找的查询必须仅返回 kgl,因为 cde 已与 Table2 中的 abc 配对>

有什么想法吗?

更新:经过一些调整,我提出了这个查询:

    SELECT uid FROM table1 AS t1 
    WHERE G = 1 AND L = 2 AND NOT EXISTS 
    (SELECT * FROM table2 AS t2 
    WHERE (t1.uid = t2.uid1 OR t1.uid=t2.uid2) AND (t2.uid1 = 'abc' OR t2.uid2 = 'abc'))

最佳答案

您可以使用NOT EXISTS来做到这一点:

SELECT uid, G, L
FROM Table1 AS t1
WHERE G = 2 AND L = 1 
      AND NOT EXISTS (SELECT 1 
                      FROM Table2 AS t2
                      WHERE t1.uid = t2.uid2 AND t2.uid1 = 'abc')

Demo here

关于mysql - 根据条件从表中返回一个条目,该条目不在另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31148289/

相关文章:

python - 将 zxJDBC 与 jython 一起使用不起作用

sql - 使用 SQL 选择之前未比较过的两行

mysql - 带时区的日期时间格式

php - 在 ImageView 上设置图像从 PC 到 Android

mysql - 如何从mysql中的结果查询中删除负值?

php - 为什么插入不起作用

python - 如何将字节插入 Python 字符串

php - 如何在wordpress的三个不同列中查看三个不同类别的帖子?

mysql - 将新表添加到 moodle 数据库

mysql - 连接同一表的两列,忽略空值。数据库