Как взять все из таблицы, но с уникальным условием?
Имею такой запрос
$query = mysqli_query($db, "SELECT DISTINCT `title` FROM `tasks` WHERE `type` = '1");
Из этого запроса я получаю только уникальные названия, мне нужно получать также их id. Как сделать это в рамках одного запроса?
Если я делаю следующий запрос, т.к id все уникальные, то берутся все значения
$query = mysqli_query($db, "SELECT DISTINCT `title`, `id` FROM `tasks` WHERE `type` = '1");
Из этого запроса я получаю только уникальные названия, мне нужно получать также их id.
Прежде чем что-то спрашивать - невредно подумать.
Как оно, по-твоему, должно выглядеть? вот одному title соответствует пять разных id - ну и какой возвращать? поле - одно, значение там поместится только одно, а их пять штук...
Для того, чтобы взять всё из таблицы, но с уникальным условием, надо сначала подумать.
Над тем, от какого конкретно title мы хотим получить id
Если исходить из того, что может быть несколько записей с одним и тем же title, у них будут разные id.
И по этой причине надо задаться вопросом - какой именно id из этих нескольких мы хотим получить. И зачем.
И после этого либо изменить вопрос, либо структуру базы данных.
Тут можно получить только MIN(Id) либо MAX(Id). "Одним" запросом, то, что вы хотите получить не выйдет. Все равно будет подзапрос на список всех Id с данным Title.
Проще наверное так:
select Id, Title from tasks where type=1
order by Title
Зачем "потом"? Сразу в sql и группировать по title с max или min по id. Другое дело так ли надо, да и выглядит очень подозрительно, вполне возможно ошибка в структуре, как уже написали.