it’s about an hour that I’m trying to understand why this query gives:
syntax error near ‘WHERE players.player_user=1 AND players.player_status=0 GROUP BY players.playe’ on line 108
I have mysql 5.6. Please ask in comments if you need more info to answer, I posted my entire query because this question is about a syntax error and not about how to make a query. This is the query:
SELECT players.*, users.user_username AS player_username, users.user_image AS player_user_image, r.ranking AS player_position, prod_info.* FROM players LEFT JOIN users ON player_user=user_id LEFT JOIN ( SELECT *, ( SELECT 1 + COUNT(*) FROM players p2 WHERE p2.`player_step`=p.`player_step` AND p2.player_score > p.player_score AND p.player_status=0 ) AS ranking FROM players p ORDER BY `player_step`, player_score DESC ) AS r ON r.player_id=players.player_id LEFT JOIN ( SELECT products.*, COUNT(order_id) AS prod_sold, name.lang_it AS prod_name_it, name.lang_en AS prod_name_en, category.lang_it AS category_name_it, category.lang_en AS category_name_en, img.img_sm AS prod_image_sm, img.img_md AS prod_image_md, img.img_lg AS prod_image_lg, IF(COUNT(wish.wish_id) > 0, 1, 0) AS prod_is_wish, placed.tickets AS prod_tickets_placed, placed.step_id AS prod_step, IF(persons.num IS NULL, 0, persons.num) AS prod_players FROM products LEFT JOIN orders ON (order_product=prod_id AND order_status>2) LEFT JOIN categories AS cat ON prod_category=cat_id LEFT JOIN languages AS name ON name.lang_id=prod_name LEFT JOIN languages AS category ON cat_name=category.lang_id LEFT JOIN ( SELECT IF(t.step_tickets IS NULL, d.step_tickets, t.step_tickets) AS tickets, t.`step_product`, t.`step_id` FROM ( SELECT `step_tickets`, `step_product`, `step_id` FROM steps LEFT JOIN players ON (players.player_step=step_id AND players.player_user=1 AND players.player_status=0) WHERE `step_status`=0 ) AS t, ( SELECT `step_tickets`, `step_product`, `step_id` FROM steps WHERE `step_status`=0 AND step_product=1 AND `step_number`=1 ) AS d ) AS placed ON placed.step_product=products.prod_id LEFT JOIN ( SELECT p.num, players.player_user, p.step_product FROM ( SELECT COUNT(players.player_id) AS num, steps.step_id, steps.step_product FROM steps LEFT JOIN players ON players.player_step=steps.step_id GROUP BY steps.step_id ) AS p LEFT JOIN players ON players.player_step=p.step_id ) AS persons ON persons.player_user=1 AND persons.step_product=prod_id LEFT JOIN images AS img ON (prod_id=img.img_product AND img.img_order=0) ) AS prod_info WHERE players.player_user=1 AND players.player_status=0 GROUP BY players.player_id ORDER BY (people.tickets / products.prod_tickets * 100) DESC
Have anyone an idea? Thank you
Advertisement
Answer
AS prod_info doesn’t have an on clause.