2011-07-14 14 views
1

私は与えられた発行者IDの合計数を引くためのクエリを持っています。私はすべての出版社のIDを反復処理することができますので、サブクエリとしてそれを使用したいと思います。指定されたIDのMySQLのサブクエリ質問

私の作業クエリは次のとおりです。

SELECT SUM(d.our_cost) 
FROM articles a 
CROSS JOIN domains d ON a.domain_id = d.id 
    AND d.publisher_id = '1094' 

私は私がこれまでd.publisher_id = p.id

パブリッシャPテーブル内のすべてのIDのために、この数字を引くしたいのですが「無駄に以下しようとしたVEの:

SELECT p.id, p.contact_name, p.contact_email, 
    (SELECT SUM(d.our_cost) 
    FROM articles a 
    CROSS JOIN domains d ON a.domain_id = d.id and d.publisher_id = p.id) total 
FROM publishers p 

私は取得しています特定のエラーがある:不明な列 『』の 『p.id句に』

答えて

1

私はあなたのクエリを変更し、句からでサブクエリを置くべきだと思い、このような何か:

SELECT p.id, p.contact_name, p.contact_email, total.total_cost 
FROM 
    (
    SELECT SUM(d.our_cost) as total_cost, d.publisher_id 
    FROM articles a CROSS JOIN domains d ON a.domain_id = d.id) total 
JOIN publishers p on total.publisher_id = p.id 
をあなたは(あなたは追加のビジネスルールを持っていない限り)すべての記事のテーブルを必要といけないよう
0

私がしようと、あなたはあなたの構文に関するエラーを得ていると仮定しています:

SELECT p.id, p.contact_name, p.contact_email, SUM(d.our_cost) as total 
FROM articles a 
    CROSS JOIN domains d ON a.domain_id = d.id 
    JOIN publishers p ON d.publisher_id = p.id 
+0

うーん、良いアドバイスが、それは問題ではないようです。私は取得していますエラーは次のとおりです。不明な列「句の」の「p.id」。 – Charles

+0

@Charles、おっと、更新の答えを参照してください、質問を再読 – Dirk

0

することにより、グループのように思えるが、代わりにここに

便利だろう。また、それは

ようです3210