gpt4 book ai didi

mysql - 如何查找与第二个表有多重关系的记录

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

我正在从表 tablea 中查找与 tableb 中的记录相关的记录。
我使用 in 函数 IN (1) 查找与 tableb 记录 1 相关的 tablea 记录。我使用 IN 因为括号中的值可以是逗号分隔的列表。

我现在必须做同样的事情,但是 tablea 记录应该与所有 tableb 记录相关,而不仅仅是其中的任何一个,这就是 IN 发现。

我可以使用什么函数代替 IN 来执行此操作?

这是我的查询:

SELECT * 
FROM tablea
JOIN tablec ON tablea.id = tablec.id_local
JOIN tableb ON tablec.id_foreign = tableb.id
WHERE
tablea.lang IN ( 0 )
AND tablea.page >=1
AND tablea.page IN ( 8, 9, 10, 11 )
AND tableb.id = 5
ORDER BY tablea.datetime DESC

以上作品,

但是 tableb.id 现在可以是多个,因为 tablea 记录可以与多个 tableb 记录相关。

SELECT *
FROM tablea
JOIN tablec ON tablea.id = tablec.id_local
JOIN tableb ON tablec.id_foreign = tableb.id
WHERE
tablea.lang IN ( 0 )
AND tablea.page >=1
AND tablea.page
IN ( 8, 9, 10, 11 )
AND tableb.id IN (5,6,7)
ORDER BY tablea.datetime DESC

这类作品。它找到与任何 tableb 记录 (5,6,7) 相关的 tablea 记录,但是我如何更改我的 SQL 以便它找到 tablea 与所有 tableb 记录(5、6 和 7)相关的记录?

最佳答案

您没有提到任何字段名称,所以我使用 relatedfield 作为两个表之间关联的字段名称:

SELECT *  
FROM tablea
JOIN tableb ON (tablea.relatedfield = tableb.relatedfield)

关于mysql - 如何查找与第二个表有多重关系的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10997242/

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