2011-12-15 10 views
1

の追加:私は次のクエリを持つサブクエリ

SELECT l.id, 
(SELECT amount FROM lead_status WHERE lead_id = l.id AND buyer = 'BUYER_PROXY') AS our_bid, 
(SELECT amount FROM lead_status WHERE lead_id = l.id AND buyer != 'BUYER_PROXY' AND discriminator='AUTO_PING' ORDER BY amount DESC LIMIT 1) AS best_bid, 
(SELECT amount FROM lead_status WHERE lead_id = l.id AND discriminator = 'AUTO_POST' AND winner = 1 ORDER BY amount DESC LIMIT 1) AS final_sold_amount, 
(SELECT buyer FROM lead_status WHERE lead_id = l.id AND discriminator = 'AUTO_POST' AND winner = 1 ORDER BY amount DESC LIMIT 1) AS buyer, 
(SELECT COUNT(*) FROM vehicles WHERE lead_id = l.id) AS number_of_vehicles FROM leads AS l, 
co.first_name, co.last_name, co.email, co.state, co.credit_type, ca.make, ca.model, co.owns_home, 
co.months_in_residence, a.injury, a.at_fault, d.gender_type, d.license_valid, d.license_obtained_age, 
d.education_level, d.license_revoked_in_last_five_years, TIME(l.create_date), rc.coverage_type 
FROM leads AS l 
LEFT JOIN contacts AS co ON l.id = co.lead_id 
LEFT JOIN vehicles AS v ON v.lead_id = l.id 
LEFT JOIN cars AS ca ON ca.id = v.car_id 
LEFT JOIN drivers AS d ON d.lead_id = l.id 
LEFT JOIN accidents AS a ON d.id = a.driver_id 
LEFT JOIN requested_coverage AS rc ON rc.lead_id = l.id 
WHERE l.state = 'ACCEPTED' 
AND (SELECT buyer FROM lead_status WHERE lead_id = l.id AND discriminator = 'AUTO_POST' AND winner = 1 ORDER BY amount DESC LIMIT 1) != 'TEST' 
AND DATE(l.create_date) > '2011-12-01' 

私は別のサブクエリを追加しようとしていますが、私が実行したときに、私は、サブクエリの最後に追加するたびに、私はエラーを取得しますコマンド。

ここに私が追加しようとしているものがあります。

​​

私は実行すると、エラーメッセージを取得してください:

SELECT l.id, 
(SELECT amount FROM lead_status WHERE lead_id = l.id AND buyer = 'BUYER_PROXY') AS our_bid, 
(SELECT amount FROM lead_status WHERE lead_id = l.id AND buyer != 'BUYER_PROXY' AND discriminator='AUTO_PING' ORDER BY amount DESC LIMIT 1) AS best_bid, 
(SELECT amount FROM lead_status WHERE lead_id = l.id AND discriminator = 'AUTO_POST' AND winner = 1 ORDER BY amount DESC LIMIT 1) AS final_sold_amount, 
(SELECT buyer FROM lead_status WHERE lead_id = l.id AND discriminator = 'AUTO_POST' AND winner = 1 ORDER BY amount DESC LIMIT 1) AS buyer, 
(SELECT COUNT(*) FROM vehicles WHERE lead_id = l.id) AS number_of_vehicles FROM leads AS l, 
co.first_name, co.last_name, co.email, co.state, co.credit_type, ca.make, ca.model, co.owns_home, 
co.months_in_residence, a.injury, a.at_fault, d.gender_type, d.license_valid, d.license_obtained_age, 
d.education_level, d.license_revoked_in_last_five_years, TIME(l.create_date), rc.coverage_type 
FROM leads AS l 
LEFT JOIN contacts AS co ON l.id = co.lead_id 
LEFT JOIN vehicles AS v ON v.lead_id = l.id 
LEFT JOIN cars AS ca ON ca.id = v.car_id 
LEFT JOIN drivers AS d ON d.lead_id = l.id 
LEFT JOIN accidents AS a ON d.id = a.driver_id 
LEFT JOIN requested_coverage AS rc ON rc.lead_id = l.id 
WHERE l.state = 'ACCEPTED' 
AND (SELECT buyer FROM lead_status WHERE lead_id = l.id AND discriminator = 'AUTO_POST' AND winner = 1 ORDER BY amount DESC LIMIT 1) != 'TEST' 
AND DATE(l.create_date) > '2011-12-01' 
+2

エラーメッセージは何ですか? –

+0

どのようなエラーメッセージが表示されますか? –

+0

ああ私...なぜこんなに多くのJOIN's?それがもたらす負担を認識していますか?正確なエラーメッセージも提供してください。 – Tadeck

答えて

3

あなたは最初のものは存在してはならない2 FROM leads AS l

(SELECT COUNT(*) FROM vehicles WHERE lead_id = l.id) AS number_of_vehicles FROM leads AS l, 
/* ------------------------------------------------------------------------------^^^^^^^^*/ 
co.first_name, co.last_name, co.email, co.state, co.credit_type, ca.make, ca.model, co.owns_home, 
co.months_in_residence, a.injury, a.at_fault, d.gender_type, d.license_valid, d.license_obtained_age, 
d.education_level, d.license_revoked_in_last_five_years, TIME(l.create_date), rc.coverage_type 
FROM leads AS l 
/*---^^^^^^^^^^^^*/ 

を持っています。

... 
(SELECT COUNT(*) FROM vehicles WHERE lead_id = l.id) AS number_of_vehicles, 
co.first_name, co.last_name, co.email, co.state, co.credit_type, ca.make, ca.model, co.owns_home, 
co.months_in_residence, a.injury, a.at_fault, d.gender_type, d.license_valid, d.license_obtained_age, 
d.education_level, d.license_revoked_in_last_five_years, TIME(l.create_date), rc.coverage_type 
FROM leads AS l 
... 
関連する問題