Есть такой запрос: $sql = "SELECT DISTINCT u.id, u.name, u.username, u.block, DATE_FORMAT(u.registerDate, '%d.%m.%Y') as registerDate, scu.status, scu.status2, scu.expects, scu.dog_send, scu.upload, scu.params, scu.newor, r.statu" . "\n FROM #__users as u" . "\n INNER JOIN #__scusers as scu ON(scu.user_id = u.id)" . "\n LEFT JOIN #__screport as r ON(r.user_id = scu.user_id)" . $where . $orderby ; вот эту таблицу я присоединил: . "\n LEFT JOIN #__screport as r ON(r.user_id = scu.user_id)" присоединял таблицу только из за параметра r.statu у него 2 вареанта либо 0 либо 1. Он у меня вывел и с параметром 0 и с параметром 1, бывает что некоторые запросы двояться из за того что в таблице screport которую я присоеденил по ID пробегают по 2-5 одинаковых ID с разными параметрами r.statu сейчас выводит к примеру ID 222 с параметром 0 потом ID 222 с параметром 1. а мне тупа на начальном уровне запроса надо отсеить все r.statu которые равны 0, мне только нужны с параметром 1. Через . $where не получаеться он вообще только их выводит, а все остальное уберает. Нужна помощь, какие есть предложения куда вставить r.statu != 0 ??? какнибуть в SELECT DISTINCT его запехнуть)))
если сделать вот так: $sql = "SELECT DISTINCT u.id, u.name, u.username, u.block, DATE_FORMAT(u.registerDate, '%d.%m.%Y') as registerDate, scu.status, scu.status2, scu.expects, scu.dog_send, scu.upload, scu.params, scu.newor, r.statu" . "\n FROM #__users as u" . "\n INNER JOIN #__scusers as scu ON(scu.user_id = u.id)" . "\n LEFT JOIN #__screport as r ON(r.user_id = scu.user_id)" . "\n OR r.statu = 0" . $where . $orderby ; тоесть прописать . "\n OR r.statu = 0" то все нормально, но в таблице присутствуют дубликаты ID
вот так все нормально выводит jimport('joomla.html.pagination'); $pagination = new JPagination( $total, $limitstart, $limit ); $sql = "SELECT DISTINCT u.id, u.name, u.username, u.block, DATE_FORMAT(u.registerDate, '%d.%m.%Y') as registerDate, scu.status, scu.status2, scu.user_id, scu.expects, scu.dog_send, scu.upload, scu.params, scu.newor, r.statu" . "\n FROM #__users as u" . "\n INNER JOIN #__scusers as scu ON(scu.user_id = u.id)" . "\n LEFT JOIN #__screport as r ON(r.user_id = u.id)" . $where . "\n GROUP BY u.id DESC" . $orderby даже выводит некоторых пользователей из таблицы screport с параметром r.statu = 1 (только тех у кого нет повторяющегося ID по которому идет соединения таблицы) как сделать так чтобы скрипт считывал даже повторные ID в таблице screport проверял у какого ID есть параметр r.statu = 1 и выводил параметр r.statu = 1 в соедененой таблице!
вот еслибы на начальном уровне можно было прописать $sql = "SELECT DISTINCT u.id, u.name, u.username, u.block, DATE_FORMAT(u.registerDate, '%d.%m.%Y') as registerDate, scu.status, scu.status2, scu.user_id, scu.expects, scu.dog_send, scu.upload, scu.params, scu.newor, r.statu = 1" где r.status = 1 былобы все отлично, он бы прочел только те строки где есть параметр r.status = 1 а потом соеденил бы их и выводилось бы все правильно! Реально так сделать?
Также с помощью where r.statu = 1; получаеться вывести этих пользователей, но остальные пользователи не выводяться из соединеных таблиц! просто я какбы хочу сделать ORDER BY r.statu = 1.
Спасибо что не кто не проявил интерес((( сам разобрался, в итоге надо было сделать вот так: . "\n LEFT JOIN #__screport as r ON(r.statu = 1 and r.user_id = u.id)" сначала он считывает все r.statu = 1 а потом их соединяет)))