ZloiKombat SELECT `login`, `pole1`, `pole2`, `pole3`, max(`time`) AS `tm` FROM `tabl` GROUP BY `login` ORDER BY `tm` DESC Что именно не работает? Не возвращает записи вообще, или возвращает, но уже не те?
ZloiKombat мой вариант должен правильно сортировать. В исходном запросе - сортировка идет по номеру столбца, пытаясь вставить колонки раньше него - сортировка как раз и сбивается. Если все же не работает, то пробуйте так: SELECT `login`, max(`time`) AS `time`, `pole1`, `pole2`, `pole3` FROM `tabl` GROUP BY `login` ORDER BY 2 DESC Вы сюда пришли за помощью, и с ходу пытаетесь испортить к себе отношение. Не советую так делать
Так выводит, но другие поля в хаотичном порядке. То есть, все выводит правильно, но при бобавлении ного поля на вывод (как в вашем примере) вывод значения этих полей идет не тот, который принадлежит выводимым строкам. P.S Человек который указывает на мой низкий уровень (если опираться на сообщение, то это даже не низкий а вообще никакой) не имея представления о моем реальном уровне знаний, первоначально уже портит настроение. Прежде чем кому то указать на уровень его знаний, нужно иметь представление о этих знаниях
ZloiKombat попробуйте так, со знаком могу ошибиться: Code: select t1.`login`, t1.`time`, t1.`pole1`, t1.`pole2` FROM Tabl t1 LEFT JOIN Tabl t2 ON t1.`login` = t2.`login` AND t1.`time`<t2.`time` WHERE t2.`login` IS NULL; http://www.yakimchuk.ru/questions.htm#keepcool Если Вы посмотрите внимательно, о ваших знаниях или незнании - не было сказано ни слова
Code: SELECT COUNT(`likes`.`id`) AS `like`,`text`.`id`,`text`.`content` LEFT JOIN `likes` ON `likes`.`lid` = `text`.`id` WHERE 1 Если в табле text нету записей ответ всёравно будет изза COUNT ,как это отменить? Тоесть если записи есть то считать а если нету то выдавать пустой результат тоесть НИЧЕГО? зарание спасибо!
В названии поля лучше не использовать `like` Code: SELECT COUNT(`likes`.`id`) AS kol,`text`.`id`,`text`.`content` LEFT JOIN `likes` ON `likes`.`lid` = `text`.`id` HAVING kol>0
Есть таблица. в ней стоит запрет на наличие дублей в пределах поля проект. тоесть не может быть 2 одинаковые записи с одинаковым значением в колонке login и proekt Добавляю записи с использованием IGNOR , а вот при обновлении (переноме логина с одного проекта в другой ошибка) запрос: UPDATE base SET proekt='$_POST[sel_move]' WHERE proekt='$idr' ошибка Duplicate entry 'login1' for key 2 Как избежать и просто проигнорировать уже имеющиеся записи?
Как реализовать SELECT * FROM `table` ORDER BY `pole1` UNION (SELECT * FROM `table2` ORDER BY `pole2`) ORDER BY `pole3` То есть данные из первой таблицы отсортировать по `pole1` , из второй по `pole2` а потом их всех вместе по `pole3` `pole3` общее для обоих таблиц, а `pole1` только у первой таблицы, `pole2` только у второй
Code: CREATE TABLE `content_type_skin` ( `nid` int(11) default NULL, `field_path_value` varchar(255) default NULL, `content_type_skin` varchar(255) default NULL, `field_use_value` varchar(255) default NULL, `field_channel_value` varchar(255) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; есть такой запрос SELECT c.nid FROM content_type_skin c WHERE c.field_path_value='nablya' UNION SELECT c.nid FROM content_type_skin c WHERE c.field_path_value='nasuka' ORDER BY c.field_path_value DESC Code: Unknown column 'c.field_path_value' in 'order clause' SELECT c.nid FROM content_type_skin c WHERE c.field_path_value='nablya' UNION SELECT c.nid FROM content_type_skin c WHERE c.field_path_value='nasuka' работает SELECT c.nid FROM content_type_skin c WHERE c.field_path_value='nasuka' ORDER BY c.field_path_value DESC работает в чём проблема в 1м запросе
Столкнулся недавно с похожей проблемой с алиасами в UNION. Из доки мускула по UNION: И там же есть про проблемы с алиасами таблиц: Исходя из этого, лучше отказаться от алиасов таблиц и дополнительно выбрать поле с алиасом, по которому ORDER BY + взять отдельные селекты в скобки. Если нужно отсортировать все выбранное в 2х селектах, примерно так : Code: (SELECT nid, field_path_value AS ordered FROM content_type_skin WHERE field_path_value='nablya') UNION (SELECT nid, field_path_value FROM content_type_skin WHERE field_path_value='nasuka') ORDER BY ordered DESC На работоспособность не проверял. А зачем вообще делать UNION селектов из одной и той же таблицы? Не проще выбрать все одним запросом WHERE field_path_value IN ('nasuka', 'nablya') ORDER BY field_path_value DESC ?
Посоветуйте как объеденить 2 таблицы accounts они идентичны структурой, но заполнены разными акаунтами, общее у них только колонка id, вообщем нужно из первой таблицы взять все колонки кроме ID и вставить в вторую таблицу присвоив новым акаунтам новые ID (колонка ID автоинкремент)
привет! вопрос, наверное, тупой, но с sql работаю недавно, не освоился еще, но уже надо) в общем, допустим, есть Таблицы A, B, C. B и C связаны по Id: например, С.C_ID, B.C_ID A и C связаны по Id: A.A_ID, C.A_ID можно посчитать сумму для конкретного ID: Code: SELECT Sum(B.Quantity) AS tbl1 FROM B, C WHERE ( (С.C_ID=B.C_ID) AND (С.C_ID=219450958) ); а теперь, допустим, мне нужно вывести отдельно сумму для каждого ID: Code: SELECT C.description, C.Quantity, (Sum(B.Quantity) AS tbl1 FROM B, C WHERE ( (С.C_ID=B.C_ID) AND (С.C_ID=219030958)) ) AS tbl1 FROM A INNER JOIN С ON A.[A_ID] = C.[A_ID] что в последнем случае нужно написать вместо (С.C_ID=219030958) ? ведь такая конструкция (С.C_ID=B.C_ID) будет означать нечто другое, а мне нужно уже конкретное значение. спасибо!