Это очень сложный вопрос для меня, поэтому название может потребовать пересмотра.Но вот моя ситуация:
Мне нужно выбрать все строки из таблицы узлов, которые содержат строку в field_data_field_incident_type, где entity_id соответствует nid, и несколько field_incident_type_tid, которые имеют тот же entity_id, что и nid.Это некоторые примеры данных из таблиц 
Например, запрос, который я хотел бы сделать, - это выбрать все узлы из узла, которые имеют оба field_incident_type_tid 66 и 64, которые должны возвращатьстроки с nid 98603 и 98612 из таблицы узлов.Прямо сейчас я делаю это с левыми соединениями, как это
SELECT nid
FROM node
left JOIN field_data_field_incident_type field_data_field_incident_type
ON node.nid = field_data_field_incident_type.entity_id
left JOIN field_data_field_incident_type field_data_field_incident_type_2
ON field_data_field_incident_type_2.entity_id = node.nid
WHERE field_data_field_incident_type.field_incident_type_tid = 66
AND field_data_field_incident_type_2.field_incident_type_tid = 64
;
, это работает, но это объединение создает каждую перестановку инцидентов_типа и становится безумным, если я продолжаю добавлять больше требований для инцидента_тид. Есть лучший способсделать это?