Skip to content

Instantly share code, notes, and snippets.

@kevinchampion
Created November 20, 2012 19:53
Show Gist options
  • Save kevinchampion/4120594 to your computer and use it in GitHub Desktop.
Save kevinchampion/4120594 to your computer and use it in GitHub Desktop.
Discount search query
discount search query:
SELECT DISTINCT n.nid, n.title, n.created, m.field_discount_long_description_value, x.expire,
p.title p_title, p.created, q.body, p.nid pnid, 1 target_count, (SELECT COUNT(t.nid) FROM {term_node} t WHERE t.nid = n.nid AND t.tid = %d) category_count
FROM {term_data} d INNER JOIN {term_node} t on t.tid = d.tid LEFT JOIN {node} n
on t.nid = n.nid INNER JOIN {content_type_mcard_discount} m on n.vid = m.vid INNER JOIN {node} p on
m.field_discount_provider_nid = p.nid INNER JOIN {node_revisions} q
on p.vid = q.vid INNER JOIN {node_expire} x on x.nid = n.nid WHERE (n.type = 'mcard_discount' AND n.status = 1 ) HAVING
target_count >= 1 AND category_count >= 1 ORDER BY p.title
Array
(
[0] => 6
)
SELECT DISTINCT n.nid, n.title, n.created, m.field_discount_long_description_value, x.expire,
p.title p_title, p.created, q.body, p.nid pnid, 1 target_count, 1 category_count
FROM {term_data} d INNER JOIN {term_node} t on t.tid = d.tid LEFT JOIN {node} n
on t.nid = n.nid INNER JOIN {content_type_mcard_discount} m on n.vid = m.vid INNER JOIN {node} p on
m.field_discount_provider_nid = p.nid INNER JOIN {node_revisions} q
on p.vid = q.vid INNER JOIN {node_expire} x on x.nid = n.nid WHERE (n.type = 'mcard_discount' AND n.status = 1 ) HAVING
target_count >= 1 AND category_count >= 1 ORDER BY p.title
Array
(
)
@vkareh
Copy link

vkareh commented Nov 20, 2012

Clean-up:

SELECT
    DISTINCT(n.nid) AS nid,
    n.title AS title,
    n.created AS created,
    m.field_discount_long_description_value AS field_discount_long_description_value,
    x.expire AS expire,
    p.title AS p_title,
    p.created AS created,
    q.body AS body,
    p.nid AS pnid
FROM {node} n
    INNER JOIN {content_type_mcard_discount} m ON n.vid = m.vid
    INNER JOIN {node_expire} x ON n.nid = x.nid
    INNER JOIN {node} p ON m.field_discount_provider_nid = p.nid
    INNER JOIN {node_revisions} q ON p.vid = q.vid
WHERE n.type = 'mcard_discount' AND n.status = 1
ORDER BY p.title ASC

@vkareh
Copy link

vkareh commented Nov 20, 2012

SELECT
    DISTINCT(n.nid) AS nid,
    n.title AS title,
    n.created AS created,
    m.field_discount_long_description_value AS field_discount_long_description_value,
    x.expire AS expire,
    p.title AS p_title,
    p.created AS created,
    q.body AS body,
    p.nid AS pnid
FROM {node} n
    INNER JOIN {term_node} t ON n.nid = t.nid
    INNER JOIN {content_type_mcard_discount} m ON n.vid = m.vid
    INNER JOIN {node_expire} x ON n.nid = x.nid
    INNER JOIN {node} p ON m.field_discount_provider_nid = p.nid
    INNER JOIN {node_revisions} q ON p.vid = q.vid
WHERE n.type = 'mcard_discount'
    AND n.status = 1
    AND t.tid = %d
ORDER BY p.title ASC

@vkareh
Copy link

vkareh commented Dec 5, 2012

SELECT
    DISTINCT(n.nid) AS nid,
    n.title AS title,
    n.created AS created,
    m.field_discount_long_description_value AS field_discount_long_description_value,
    x.expire AS expire,
    p.title AS p_title,
    p.created AS created,
    q.body AS body,
    p.nid AS pnid,
    GROUP_CONCAT(t.tid) AS tid
FROM {node} n
    INNER JOIN {term_node} t ON n.nid = t.nid
    INNER JOIN {content_type_mcard_discount} m ON n.vid = m.vid
    INNER JOIN {node_expire} x ON n.nid = x.nid
    INNER JOIN {node} p ON m.field_discount_provider_nid = p.nid
    INNER JOIN {node_revisions} q ON p.vid = q.vid
WHERE n.type = 'mcard_discount'
    AND n.status = 1
    AND t.tid = %d
ORDER BY p.title ASC

@vkareh
Copy link

vkareh commented Dec 5, 2012

SELECT
    DISTINCT(n.nid) AS nid,
    n.title AS title,
    n.created AS created,
    m.field_discount_long_description_value AS field_discount_long_description_value,
    x.expire AS expire,
    p.title AS p_title,
    p.created AS created,
    q.body AS body,
    p.nid AS pnid,
    GROUP_CONCAT(t.tid) AS tid
FROM {node} n
    INNER JOIN {term_node} t ON n.nid = t.nid
    INNER JOIN {content_type_mcard_discount} m ON n.vid = m.vid
    INNER JOIN {node_expire} x ON n.nid = x.nid
    INNER JOIN {node} p ON m.field_discount_provider_nid = p.nid
    INNER JOIN {node_revisions} q ON p.vid = q.vid
WHERE n.type = 'mcard_discount'
    AND n.status = 1
    AND t.tid = %d
GROUP BY nid
ORDER BY p.title ASC

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment