簡體   English   中英

將這兩個SQL語句合並為一個

[英]Combining these two SQL statements into one

將這兩個SQL語句合並為一個的最佳方法是什么? 我嘗試使用union,但似乎無處可去。

select id as id from likes where type=1;

select sum(votes) as votes from likes where parent=id;

這是likes表:

id  type  parent  country  votes
 1     1       0       US      0
 2     2       1       US      6 // This +
19     3       1       US      3 // This
 3     3       2       US      3
 7     3       2       US      3
 4    10       3       US      1
 5    10       3       US      1
 6    10       3       US      1
10    10       7       US      1
 9    10       7       US      1
 8    10       7       US      1
20    10      19       US      1
21    10      19       US      1
22    10      19       US      1

這是我想要實現的結果:

id | votes
---------------
1  | 9

試試這個:

SELECT 
  l1.id,
  SUM(l2.votes) AS Totalvotes
FROM likes AS l1
INNER JOIN likes AS l2 ON l1.id = l2.parent 
WHERE l1.type = 1 
GROUP BY l1.id;

在這里看到它:

這會給你:

| ID | TOTALVOTES |
-------------------
|  1 |          9 |
SELECT SUM(votes) AS votes 
FROM likes 
WHERE parent IN (SELECT id FROM likes WHERE type=1)

HTH

這應該可以解決你的問題,我相信:

SELECT parent AS id, SUM(votes) AS votes FROM likes WHERE parent IN (SELECT id FROM likes WHERE type = 1) GROUP BY parent;

你可以試試這個

select id,sum(votes) as votes from likes where type=1 and parent=id;

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM