當語句結尾處的WHERE子句未包括時,子查詢限制結果完美。我知道子查詢LIMIT首先發生,然後在該結果集上觸發WHERE子句,並且這是對子查詢的限制/限制。子查詢LIMIT在執行子查詢之外的WHERE時導致問題
我需要的是比我更有經驗的人幫助兄弟用LIMIT檢索記錄,並且能夠通過WHERE子句限制結果集。讓我知道這是不是很好解釋。
我也搜遍了互聯網尋找答案几個小時,沒有運氣。你的時間值得讚賞。
編輯:添加上SQLfiddle原油例如:http://sqlfiddle.com/#!9/2de563/4
SELECT *
FROM (SELECT * FROM parent_products LIMIT 10) pp
INNER JOIN products_variants pv ON pv.parent_id=pp.parent_id
INNER JOIN products p ON p.id=pv.product_id
INNER JOIN product_types pt ON pt.product_type_id=p.product_type
LEFT JOIN team_list t ON pp.team_id=t.team_id
LEFT JOIN photos ph ON ph.product_id=p.id
LEFT JOIN product_attributes pa ON pa.product_id=pv.product_id
LEFT JOIN attributes a ON a.id=pa.attribute_id
LEFT JOIN product_attribute_options po ON po.product_attribute_option_id=a.parent_id
WHERE t.team_id=100 AND p.active='y';
如果可能分享您的樣本數據的腳本,將很容易調試查詢 –
@ChintanUdeshi我希望我可以...這是一個工作數據庫......再加上數據結構是頂起來的。基本上這是與父母/子女的1-n關係。我需要限制父母,但不包括孩子數量的限制(上面的查詢)。但是一旦添加WHERE子句,由於LIMIT選擇前10個結果並針對這10個結果運行WHERE,因此結果爲空。因此沒有結果。希望這個解釋能幫助更多。 – Binary101010
yes從(SELECT * FROM parent_products LIMIT 10)中選擇的前10個結果在相應產品中沒有Active ='y',因此當您應用條件時沒有數據到達 –