0

SQL サブクエリに関するいくつかの構文を理解したことがありません。主に、親クエリのどこにサブクエリを配置することが有効であるかに興味があります。

エラーをスローする例を次に示します。

SELECT 
  sum(votes.vote) AS sum, 
  votes.vote IS NOT NULL AS did_i_vote, 
  purchase_id, subject, full_name 
FROM (
  SELECT vote FROM votes 
  where votes.acct_id=3 AND 
    votes.column_name='purchase_id'
) votes  
RIGHT JOIN items_purchased 
  ON votes.parent_id=items_purchased.purchase_id  
JOIN accounts 
  ON items_purchased.purchaser_account_id=accounts.acct_id   
JOIN items 
  ON items_purchased.item_id=items.folder_id   
WHERE purchase_id='2' 
GROUP BY items_purchased.purchase_id

このクエリを機能させるにはどうすればよいですか?

4

2 に答える 2

2

その部分に1つのエラーがありますGROUP BY

では、そこにない列のおよび 集計関数に列をSELECT表示することしかできません。GROUP BY


この情報をチェックしてください!

于 2012-05-03T16:07:58.300 に答える
1

後で参照subqueryするすべてを選択する必要があります。column

SELECT 
  sum(votes.vote) AS sum, 
  votes.vote IS NOT NULL AS did_i_vote, 
  purchase_id, subject, full_name 
FROM (
  SELECT vote, parent_id FROM votes 
  where votes.acct_id=3 AND 
    votes.column_name='purchase_id'
) votes  
RIGHT JOIN items_purchased 
  ON votes.parent_id=items_purchased.purchase_id  
JOIN accounts 
  ON items_purchased.purchaser_account_id=accounts.acct_id   
JOIN items 
  ON items_purchased.item_id=items.folder_id   
WHERE purchase_id='2' 
GROUP BY items_purchased.purchase_id

私が想定していることです(サブクエリでvoteandを選択していることに注意してください)parent_id

于 2012-05-03T16:06:54.117 に答える