我正在查找表tablea
中与tableb
中的记录相关的记录
我使用函数IN (1)
来查找与tablea
记录1相关的tableb
记录。我使用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
这种作品。它找到与任何tablea
记录(5,6,7)相关的tableb
条记录,但是如何更改我的SQL以便找到与tablea
相关的记录所有tableb
条记录(5,6和7)?
答案 0 :(得分:0)
您没有提及任何字段名称,因此我使用relatedfield
作为两个表之间相关的字段名称:
SELECT *
FROM tablea
JOIN tableb ON (tablea.relatedfield = tableb.relatedfield)