Active
Project:
BackReference
Version:
6.x-1.1
Component:
Code
Priority:
Normal
Category:
Feature request
Assigned:
Unassigned
Reporter:
Created:
2 Sep 2011 at 13:54 UTC
Updated:
2 Sep 2011 at 14:09 UTC
I've been looking for solutions to do the above and ended up putting a query in a views nid-field (with no relationship) template file because I couldn't figure it out with either of your modules. I ended up with this monster of a query:
$query = <<<EOT
SELECT nodes_derived.nid FROM (
SELECT DISTINCT node.nid AS nid
FROM node node
LEFT JOIN og_ancestry og_ancestry ON node.nid = og_ancestry.nid
LEFT JOIN content_field_system_req_reference content_field_system_req_reference ON node.vid = content_field_system_req_reference.vid
LEFT JOIN casetracker_case casetracker_case ON node.nid = casetracker_case.nid
WHERE (
og_ancestry.group_nid =1
)
AND (
content_field_system_req_reference.field_system_req_reference_nid IN (
/* Subquery to find system requirement nodes that reference to this user need */
SELECT nodes_derived.nid FROM (
SELECT DISTINCT node.nid AS nid
FROM node node
LEFT JOIN og_ancestry og_ancestry ON node.nid = og_ancestry.nid
LEFT JOIN content_type_requirement node_data_field_user_need_reference ON node.vid = node_data_field_user_need_reference.vid
LEFT JOIN casetracker_case casetracker_case ON node.nid = casetracker_case.nid
WHERE (
node.status <>0
)
AND (
og_ancestry.group_nid =1
)
AND (
node_data_field_user_need_reference.field_user_need_reference_nid =%d
)
)nodes_derived
)
AND (
casetracker_case.case_status_id =5
)
)
)nodes_derived
EOT;
$tasks = db_result(db_query($query, $output));
Is there any way you can do a double subquery like this with a module? because I already forgot how I came up with this code so it is not a maintainable, nor a portable solution. (but it does work).
Also feel free to comment on my code because I have a theming background and I'm new to this.