1

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

我现在必须做同样的事情,但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 

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

4

1 回答 1

0

您没有提及任何字段名称,因此我将relatedfield其用作两个表之间相关的字段名称:

SELECT *  
FROM tablea 
    JOIN tableb ON (tablea.relatedfield = tableb.relatedfield)
于 2012-06-12T13:17:17.523 回答