Как правило:
Переместите столбцы SELECT
ed до основного оператора SELECT
, переместите предложение FROM
в положение JOIN
ниже исходного FROM
, и вашприсоединить условие к этой линии, а также.Ваше WHERE
предложение может остаться как есть.
Также, как говорит @RedFilter, используйте предложения JOIN
и ON
.Я думаю, что вы делаете декартов, но я не уверен из-за синтаксиса.
Например (я не знаю, допустимо ли это для вашей структуры таблицы, так как вы ее не указали):
SELECT o.order_id, n.title, c.first_name, t1.name, o.product_id,ttd2.tid as 'tid', ttd4.name as 'name'
FROM orders o
INNER JOIN products p ON o.product_id = p.nid
INNER JOIN node n ON AND p.nid = n.nid
INNER JOIN customers c ON o.customer_email = c.customer_email
INNER JOIN term_data t1 ON t2.tid = t1.tid
INNER JOIN term_node t2 ON n.nid = t2.nid
INNER JOIN ...
WHERE n.nid = t2.nid
AND ttd2.vid = 5
AND ttn2.nid = p.nid
AND ttd2.tid=ttn2.tid)
AND t1.vid = 6
AND ...