Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 基于行数的复合查询解决方案_Mysql - Fatal编程技术网

Mysql 基于行数的复合查询解决方案

Mysql 基于行数的复合查询解决方案,mysql,Mysql,我有三张桌子 td_理念 |------------|-------------| | idea_id | idea_name | |------------|-------------| |------------|-------------| | idea_id | idea_name | |------------|-------------| | 1 | Pink Ruby | |------------|-------------| | 2

我有三张桌子

td_理念

|------------|-------------|
| idea_id    | idea_name   |
|------------|-------------|
|------------|-------------|
| idea_id    | idea_name   |
|------------|-------------|
| 1          | Pink Ruby   |
|------------|-------------|
| 2          | Black_ruby  |
|------------|-------------|
然后是你的想法和评论

|-----------|------------|----------
|comm_id    | idea_id    | user_id  |
|-----------|------------|----------|
|------------|-------------|---------------|
| comm_id    | idea_id     | user_id       |
|------------|-------------|---------------|
| 1          |     1       |     1         |
|------------|-------------|---------------|
| 2          |     2       |     1         |
|------------|-------------|---------------|
| 3          |     1       |     2         |
|------------|-------------|---------------|
| 4          |     1       |     3         |
|------------|-------------|---------------|
还有你喜欢的想法

|-----------|------------|----------
|comm_id    | idea_id    | user_id  |
|-----------|------------|----------|
|------------|-------------|---------------|
| like_id    | idea_id     | user_id       |
|------------|-------------|---------------|
| 1          |     1       |     1         |
|------------|-------------|---------------|
| 2          |     2       |     1         |
|------------|-------------|---------------|
| 3          |     1       |     2         |
|------------|-------------|---------------|
| 4          |     1       |     3         |
|------------|-------------|---------------|
现在我需要使用一个查询,根据td_idea_like中的投票数和td_idea_comment上的评论数,按升序排列想法

三个表的示例如下所示

td_理念

|------------|-------------|
| idea_id    | idea_name   |
|------------|-------------|
|------------|-------------|
| idea_id    | idea_name   |
|------------|-------------|
| 1          | Pink Ruby   |
|------------|-------------|
| 2          | Black_ruby  |
|------------|-------------|
td\u想法\u评论

|-----------|------------|----------
|comm_id    | idea_id    | user_id  |
|-----------|------------|----------|
|------------|-------------|---------------|
| comm_id    | idea_id     | user_id       |
|------------|-------------|---------------|
| 1          |     1       |     1         |
|------------|-------------|---------------|
| 2          |     2       |     1         |
|------------|-------------|---------------|
| 3          |     1       |     2         |
|------------|-------------|---------------|
| 4          |     1       |     3         |
|------------|-------------|---------------|
你喜欢什么主意

|-----------|------------|----------
|comm_id    | idea_id    | user_id  |
|-----------|------------|----------|
|------------|-------------|---------------|
| like_id    | idea_id     | user_id       |
|------------|-------------|---------------|
| 1          |     1       |     1         |
|------------|-------------|---------------|
| 2          |     2       |     1         |
|------------|-------------|---------------|
| 3          |     1       |     2         |
|------------|-------------|---------------|
| 4          |     1       |     3         |
|------------|-------------|---------------|
我使用了这个查询

SELECT * FROM td_idea,td_idea_comment,tyd_idea_like

WHERE td_idea.idea_id=td_idea_comment.idea_id
AND td_idea.idea_id=td_idea_like.idea_id

Order BY (SELECT COUNT(*) AS tot_comment FROM td_idea,td_idea_comment
WHERE td_idea.idea_id=td_idea_comment.idea_id),
(SELECT COUNT(*) AS tot_like FROM td_idea,td_idea_like
WHERE td_idea.idea_id=td_idea_like.idea_id)
但如果在任何情况下,td_idea_comment中没有基于特定想法的行,或者td_idea_like中没有基于特定想法的行,则返回零

说:

  • 想法id 1有3个喜欢3个评论
  • 想法id 2有1个和2个注释
  • 创意id 3有0条评论和4条评论
然后对于idea id 3,结果返回为0

而我希望它能像这样分类

idea id 1(since 3+3)
idea id 3(since 0+4)
idea id 2(since 1+2)
要进一步了解加入的更多信息,请访问以下链接:

要进一步了解加入的更多信息,请访问以下链接: