相关疑难解决方法(0)

结合连接和计数的MySQL语句?

我有一个'文件夹'表.我想返回userId为16的所有记录.

SELECT * FROM `folders` WHERE userId = 16;
Run Code Online (Sandbox Code Playgroud)

我有一张'文件'表.对于上面返回的每个"文件夹",我想返回该"文件夹"中的"文件"计数.

SELECT COUNT(*) as "Files" FROM files WHERE Folder = n;
Run Code Online (Sandbox Code Playgroud)

我如何结合这些?我迷路了.谢谢!

sql join count

26
推荐指数
2
解决办法
4万
查看次数

高级Mysql查询,如果两个条件匹配不同的子记录行,则获取主记录

我正在编写一个mysql过滤器查询,它有一个主表和另一个表,它对每个主表记录保存多个记录(我将这个表称为子表).

我试图编写一个查询,根据子表上的值来获取主表的记录.如果子表条件为1,那么我只需加入即可完成,但我有2个条件属于同一个字段.

For ex.
table 1:
id   name  url
1    XXX   http://www.yahoo.com
2    YYY   http://www.google.com
3    ZZZ   http://www.bing.com

table 2:
id masterid optionvalue
1  1        2
2  1        7
3  2        7
4  2        2
5  3        2
6  3        6
Run Code Online (Sandbox Code Playgroud)

当optionvalue仅匹配两个不同条件的匹配在第二个表上时,我的查询必须返回唯一主记录.我用IN写了查询...

select * from table1 
left join table2 on table1.id=table2.masterid 
where table2.optionvalue IN(2,7) group by table1.id;
Run Code Online (Sandbox Code Playgroud)

这得到了我所有的3条记录,因为IN基本上是在检查'OR',但在我的情况下,我不应该获得第3主记录,因为它的值为2,6(没有7).如果我用'AND'写查询,那么我没有得到任何记录......

select * from table1 
left join table2 on table1.id=table2.masterid 
where table2.optionvalue = 2 and table2.optionvalue = 7;
Run Code Online (Sandbox Code Playgroud)

这不会返回记录,因为我会检查同一列上的不同值.我想编写一个查询,该查询获取具有子记录的主记录,其中字段optionvalues在不同记录上保存2和7. …

mysql sql database

3
推荐指数
1
解决办法
854
查看次数

标签 统计

sql ×2

count ×1

database ×1

join ×1

mysql ×1