我的 mysql 数据库中有 2 个表
1用于注册所有个人信息,ID自增 2 表示某些具有值且 ID_Anagrafica = ID 的属性
我的问题是:如果我只想在第一个表中搜索第二个表上具有某些属性值的注册表,我该怎么做?
示例:
属性值的第二个表:
ID_Anagrafica
与 registry
中的 ID
匹配
有一个查询在第二个表上使用 where 子句返回 ID:
SELECT *
FROM "first table"
WHERE "secondTable".valore = "value"
AND "secondTable".valore = "value";
最佳答案
这是一种方式... in 的值和 count 的值可以是传入的变量,因为您将始终知道您传入的值以及有多少个...
SELECT *
FROM First A
INNER JOIN (SELECT ID_anafrafica
FROM Second
WHERE Valore in ('value1','Value2')
Group by ID_anafrafica
having count(ID_Anafrafica) = 2) B
on A.ID = B.ID_anafrafica
我不喜欢的是你没有关闭 ID_Attributo,但我认为如果你正在寻找属性的值(value),你应该这样做
与为每个元素添加额外的联接相比,这应该在性能和可维护性方面具有更好的扩展性。
关于php - Mysql关系一对多获取数据多where子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31997110/