首页 > 解决方案 > 来自多个随机表的sql查询

问题描述

我有 3 张桌子

表1(一id一名字)

ID|name

1| john

2|mike

3|olga

4|juliet

表2()

ID|adress

1|xxx

1|yyy

2|xx

2|z

3|xxx

3|yy

表3 ()

address|buildings

xxx|flat

xxx|building

z|flat

z|building

z|park

z|lot

yy|building

yy|park

我希望找到name那些想要同时停留的人buildingflat所有值都是随机的,所以我只能搜索建筑物,我已经设法只查询一种类型的建筑物,但我缺少一些东西来验证所需的 AND

标签: sqlite

解决方案


您必须加入所有 3 个表并按以下方式分组name

SELECT t1.name FROM table1 t1 
INNER JOIN table2 t2 ON t2.id = t1.id
INNER JOIN table3 t3 ON t3.address = t2.address
WHERE t3.buildings IN ('building', 'flat')
GROUP BY t1.name
HAVING COUNT(DISTINCT t3.buildings) = 2

推荐阅读