Advertisement
grimdonkey

Untitled

Nov 26th, 2014
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 5.18 KB | None | 0 0
  1.  SELECT simple_mtg_cards.*,
  2.        Ifnull(d.c, 0)          AS decks_count,
  3.        Ifnull(traded.COUNT, 0) AS traded_count,
  4.        Ifnull(i.c, 0)          AS inventory_count,
  5.        Ifnull(i.tc, 0)         AS tradelist_count,
  6.        Ifnull(w.c, 0)          AS wishlist_count
  7. FROM   `simple_mtg_cards`
  8.        LEFT JOIN (SELECT card_id,
  9.                          SUM(COUNT) c
  10.                   FROM   mtg_cards_sets cs
  11.                          JOIN sets s
  12.                            ON ( s.id = cs.set_id
  13.                                 AND s.user_id = 1
  14.                                 AND s.TYPE = 'Deck' )
  15.                   GROUP  BY card_id) AS d
  16.               ON ( d.card_id = simple_mtg_cards.id )
  17.        LEFT JOIN (SELECT card_id,
  18.                          SUM(mtcs.COUNT) AS `count`
  19.                   FROM   mtg_trade_cards_sets AS mtcs
  20.                          JOIN mtg_detailed_cards mdc
  21.                            ON ( mtcs.details_id = mdc.id )
  22.                          JOIN trades t
  23.                            ON mtcs.trade_id = t.id
  24.                               AND ( t.source_user_id = 1
  25.                                      OR t.target_user_id = 1 )
  26.                               AND t.source_state != 4
  27.                               AND t.source_state != 3
  28.                               AND t.target_state != 3
  29.                   GROUP  BY card_id) AS traded
  30.               ON traded.card_id = simple_mtg_cards.id
  31.        LEFT JOIN (SELECT card_id,
  32.                          SUM(COUNT)       c,
  33.                          SUM(trade_count) tc
  34.                   FROM   mtg_detailed_cards_sets mdcs
  35.                          JOIN mtg_detailed_cards mdc
  36.                            ON mdcs.details_id = mdc.id
  37.                   WHERE  set_id = 1
  38.                   GROUP  BY card_id) AS i
  39.               ON ( i.card_id = simple_mtg_cards.id )
  40.        LEFT JOIN (SELECT card_id,
  41.                          SUM(COUNT) c
  42.                   FROM   detailed_mtg_cards_sets
  43.                   WHERE  set_id = 3
  44.                   GROUP  BY card_id) AS w
  45.               ON ( w.card_id = simple_mtg_cards.id )
  46.        JOIN (SELECT id,
  47.                     @i := @i + 1 AS o
  48.              FROM   (SELECT mtg_cards.id,
  49.                             Ifnull(i.c, 0)  AS inventory_count,
  50.                             Ifnull(i.tc, 0) AS tradelist_count
  51.                      FROM   `mtg_cards`
  52.                             INNER JOIN `mtg_cards_editions`
  53.                                     ON `mtg_cards_editions`.`id` =
  54.                                        `mtg_cards`.`main_card_edition_id`
  55.                             INNER JOIN `mtg_card_prices`
  56.                                     ON `mtg_card_prices`.`id` =
  57.                                        `mtg_cards_editions`.`mtg_card_price_id`
  58.                             LEFT JOIN (SELECT card_id,
  59.                                               SUM(COUNT)       c,
  60.                                               SUM(trade_count) tc
  61.                                        FROM   mtg_detailed_cards_sets mdcs
  62.                                               JOIN mtg_detailed_cards mdc
  63.                                                 ON mdcs.details_id = mdc.id
  64.                                        WHERE  set_id = 1
  65.                                        GROUP  BY card_id) AS i
  66.                                    ON ( i.card_id = mtg_cards.id )
  67.                      WHERE  ( (SELECT COUNT(*)
  68.                                FROM   mtg_cards_editions
  69.                                WHERE  mtg_cards_editions.edition_id IN
  70.                                       ( 120, 178, 305 )
  71.                                       AND mtg_cards_editions.card_id =
  72.                                           mtg_cards.id) >
  73.                               0 )
  74.                             AND ( (SELECT COUNT(*)
  75.                                    FROM   mtg_cards_formats
  76.                                    WHERE  mtg_cards_formats.format_id IN ( 4 )
  77.                                           AND mtg_cards_formats.card_id =
  78.                                               mtg_cards.id)
  79.                                   > 0
  80.                                 )
  81.                             AND ( (SELECT COUNT(*)
  82.                                    FROM   mtg_cards_colors
  83.                                    WHERE  mtg_cards_colors.color_id IN ( 2, 3 )
  84.                                           AND mtg_cards_colors.card_id =
  85.                                               mtg_cards.id)
  86.                                   > 0
  87.                                   AND (SELECT COUNT(*)
  88.                                        FROM   mtg_cards_colors
  89.                                        WHERE  mtg_cards_colors.color_id NOT IN (
  90.                                               2, 3 )
  91.                                               AND mtg_cards_colors.card_id =
  92.                                                   mtg_cards.id) =
  93.                                       0 )
  94.                      ORDER  BY inventory_count DESC,
  95.                                name
  96.                      LIMIT  30 offset 0) inner_fq,
  97.                     (SELECT @i := 0) iter) AS fq
  98.          ON ( fq.id = simple_mtg_cards.id )
  99. ORDER  BY fq.o
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement