Хм. А казалось, что лучше, т.к. обход параметров будет происходить в массиве, и проблема с тем, чтобы не писать вместо ненужных параметров NULL отпадет.
LEFT JOIN ru_product tb2 ON tb2.product_id=tb.id
LEFT JOIN product_catalog tb3 ON tb3.product_id=tb.id
LEFT JOIN product_status_set tb4 ON tb4.product_id=tb.id
WHERE tb.active='1' AND tb3.catalog_id=? AND tb3.product_id!='10'
GROUP BY tb.id
ORDER BY rand()
LIMIT 6
Думаю такие запросы даже отформатированные будут смотреться не очень хорошо среди остального кода. Гораздо лучше заменить это все несколькими строчками кода, который сгенерирует этот sql запрос автоматически. Конечно же, это мое IMHO.
1) Спасибо за совет, в будущем учту.
2) Я ее не использовал, т.к. для работы с БД использую PDO. Насколько я знаю, то PDO не нуждается в исп. mysql_real_escape_string.(может я и ошибаюсь)
3) "`" не добавлял, т.к. подразумевается, что поля будут указываться вместе с аллиасами, т.к. специфика базы с которой сейчас работаю требует Join использовать практически для любого запроса.
Да, я с Вами согласен на счет ORM, но это было бы слишком глобально, т.к. эта задача применялась на уже написанной CMS. Думаю использование ORM очень сильно повлияло бы на CMS, а вот с помощью этого способа я просто немного упорядочил работу с базой данных.
tb.*,
tb2.name,
tb2.body_m,
tb3.catalog_id,
tb4.status_id
FROM product tb
LEFT JOIN ru_product tb2 ON tb2.product_id=tb.id
LEFT JOIN product_catalog tb3 ON tb3.product_id=tb.id
LEFT JOIN product_status_set tb4 ON tb4.product_id=tb.id
WHERE tb.active='1' AND tb3.catalog_id=? AND tb3.product_id!='10'
GROUP BY tb.id
ORDER BY rand()
LIMIT 6
Думаю такие запросы даже отформатированные будут смотреться не очень хорошо среди остального кода. Гораздо лучше заменить это все несколькими строчками кода, который сгенерирует этот sql запрос автоматически. Конечно же, это мое IMHO.
2) Я ее не использовал, т.к. для работы с БД использую PDO. Насколько я знаю, то PDO не нуждается в исп. mysql_real_escape_string.(может я и ошибаюсь)
3) "`" не добавлял, т.к. подразумевается, что поля будут указываться вместе с аллиасами, т.к. специфика базы с которой сейчас работаю требует Join использовать практически для любого запроса.