gpt4 book ai didi

mysql - 关于mysql中两个表的复杂SELECT逻辑

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

我有两个具有以下架构的表

表1

字段1 |字段2

表2

字段2 |字段3

我想做的是:

如果没有 table1.field2 = table2.field2 AND table1.field = 'x',则从 table2 获取 field2 AND field3

在演练中:

表1

字段1 |字段2

1 |某事

1 |别的东西

2 |另一个

表2

字段2 |字段3

还有一个|获取

在此示例中,我想要获取 'yetanother' 和 'to_get',因为 table2 中没有字段 field2 = yetanother 以及查询中我的 'x'是 1。这样做的问题是我将检索 2 倍我想要的信息,因为 table1 中有两次 field1 = '1'。所以,我的查询将得到另一个,to_get;还有一个,to_get,因为重复。我尝试使用 DISTINCTLIMIT 但这不起作用,因为它应用于 table2 中的字段,而不是 table1 中的字段。因此,如果 table1 中有 3 行,其中 field1 = 1distinctlimit 将“删除”其中一行并检索两个 还有一个,to_get;还有一个,to_get。如果我有 10 行 field1 = '1',它将检索 9 次 yetanother, to_get。如果有一行包含“field1 = '1'”和“field2 = 'yetanother'”,那么我希望查询不返回任何内容(因为 field2 是共同的)。我怎样才能实现这个目标?我不知道这实际上是简单还是困难,但我真的觉得我错过了并且搞乱了一些我忘记的东西......

最佳答案

试试这个 friend

SELECT DISTINCT *             /* select all */
FROM table1 t1, table2 t2 /* from these 2 tables */
WHERE t1.field2 <> t2.field2 /* where t1 field1 != t2 field1 */
AND t1.field1 = 'x'; /* and t1.field 1 is X */

请告诉我这是否适合您。

关于mysql - 关于mysql中两个表的复杂SELECT逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28132246/

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