I have a view which displays Tutors & Courses, this has grouping on Course and both Tutors and Courses have alphabetical sorting applied. Everything works as expected apart from the first and last rows are not in the correct order (It looks like the first & last nid from the results are put at the top and bottom of the results ignoring the sorting setting.)

This produces results like:

Course Name E (incorrectly ordered - interestingly the lowest nid out of the results)
-Tutor A
-Tutor B
Course A
Course B
Course D
Course E
Course F
Course G
Course C (incorrectly ordered - interestingly the highest nid out of the results)

Below is the SQL query :

SELECT field_collection_item_field_data_field_course_involvement.item_id AS field_collection_item_field_data_field_course_involvement_it, node.nid AS nid, node.title AS node_title, field_data_field_course_involvement.delta AS field_data_field_course_involvement_delta, field_data_field_course_involvement.language AS field_data_field_course_involvement_language, field_data_field_course_involvement.bundle AS field_data_field_course_involvement_bundle, field_data_field_course_involvement.field_course_involvement_value AS field_data_field_course_involvement_field_course_involvement, field_collection_item_field_data_field_course_involvement__field_data_field_course2.field_course_nid AS field_collection_item_field_data_field_course_involvement__f, field_data_field_first_name.field_first_name_value AS field_data_field_first_name_field_first_name_value, 'field_collection_item' AS field_data_field_course_field_collection_item_entity_type, 'node' AS field_data_field_first_name_node_entity_type, 'node' AS field_data_field_initial_node_entity_type, 'field_collection_item' AS field_data_field_level_of_relevance_field_collection_item_en, 'node' AS field_data_field_course_involvement_node_entity_type, 'node' AS field_data_field_imdb_link_node_entity_type, 'node' AS field_data_field_other_link_node_entity_type, 'node' AS field_data_body_node_entity_type
FROM 
{node} node
LEFT JOIN {field_data_field_course_involvement} field_data_field_course_involvement ON node.nid = field_data_field_course_involvement.entity_id AND (field_data_field_course_involvement.entity_type = 'node' AND field_data_field_course_involvement.deleted = '0' AND field_data_field_course_involvement.delta = '0')
INNER JOIN {field_collection_item} field_collection_item_field_data_field_course_involvement ON field_data_field_course_involvement.field_course_involvement_value = field_collection_item_field_data_field_course_involvement.item_id
LEFT JOIN {field_data_field_course} field_collection_item_field_data_field_course_involvement__field_data_field_course ON field_collection_item_field_data_field_course_involvement.item_id = field_collection_item_field_data_field_course_involvement__field_data_field_course.entity_id AND (field_collection_item_field_data_field_course_involvement__field_data_field_course.entity_type = 'field_collection_item' AND field_collection_item_field_data_field_course_involvement__field_data_field_course.deleted = '0' AND field_collection_item_field_data_field_course_involvement__field_data_field_course.delta = '0')
INNER JOIN {node} node_field_data_field_course ON field_collection_item_field_data_field_course_involvement__field_data_field_course.field_course_nid = node_field_data_field_course.nid
LEFT JOIN {field_data_field_course} field_collection_item_field_data_field_course_involvement__field_data_field_course2 ON field_collection_item_field_data_field_course_involvement.item_id = field_collection_item_field_data_field_course_involvement__field_data_field_course2.entity_id AND (field_collection_item_field_data_field_course_involvement__field_data_field_course2.entity_type = 'field_collection_item' AND field_collection_item_field_data_field_course_involvement__field_data_field_course2.deleted = '0')
LEFT JOIN {field_data_field_first_name} field_data_field_first_name ON node.nid = field_data_field_first_name.entity_id AND (field_data_field_first_name.entity_type = 'node' AND field_data_field_first_name.deleted = '0')
WHERE (( (node.status = '1') AND (node.type IN  ('tutors')) ))
ORDER BY field_collection_item_field_data_field_course_involvement__f ASC, field_data_field_first_name_field_first_name_value ASC

Comments

dawehner’s picture

Thanks for posting the sql, it helps at least a bit more to understand the actual problem.

If this is a table you might want to checkout the dev version, there was a bug fix in this region.

So field_collection_item_field_data_field_course_involvement__f is the tutor, just wanted to be sure about that...

westie’s picture

thanks for your prompt response :)

"field_collection_item_field_data_field_course_involvement__f" is the Course while "field_data_field_first_name_field_first_name_value" is the Tutor.

Is there anything else I can supply?

I will try the dev version now.