Ответ 1
Вы ищете "SELECT * FROM temp_tickets GROUP BY ticket_id ORDER BY ticket_id
?
ОБНОВЛЕНИЕ
SELECT t.*
FROM
(SELECT ticket_id, MAX(id) as id FROM temp_tickets GROUP BY ticket_id) a
INNER JOIN temp_tickets t ON (t.id = a.id)
Я пытаюсь выбрать дублирующиеся строки в таблице mysql, он отлично работает для меня, но проблема в том, что он не позволяет мне выбирать все поля в этом запросе, просто позволяя мне выбрать имя поля, которое я использовал как отдельный, lemme написать запрос для лучшего понимания
mysql_query("SELECT DISTINCT ticket_id FROM temp_tickets ORDER BY ticket_id")
mysql_query("SELECT * , DISTINCT ticket_id FROM temp_tickets ORDER BY ticket_id")
1-й работает нормально
теперь, когда я пытаюсь выбрать все поля, я получаю ошибки
Я пытаюсь выбрать последний из дубликатов, скажем, ticket_id 127 3 раза в строке id 7,8,9, поэтому я хочу выбрать его один раз с последней записью, которая в этом случае будет 9, и это относится к все остальные элементы ticket_id
Любая идея спасибо
Вы ищете "SELECT * FROM temp_tickets GROUP BY ticket_id ORDER BY ticket_id
?
ОБНОВЛЕНИЕ
SELECT t.*
FROM
(SELECT ticket_id, MAX(id) as id FROM temp_tickets GROUP BY ticket_id) a
INNER JOIN temp_tickets t ON (t.id = a.id)
DISTINCT не является функцией, которая применяется только к некоторым столбцам. Это модификатор запроса, который применяется ко всем столбцам в списке выбора.
То есть DISTINCT уменьшает строки только в том случае, если все столбцы идентичны столбцам другой строки.
DISTINCT должен следовать сразу после SELECT (наряду с другими модификаторами запросов, такими как SQL_CALC_FOUND_ROWS). Затем, следуя модификаторам запросов, вы можете указать столбцы.
ПРАВО: SELECT DISTINCT foo, ticket_id FROM table...
Выведите строку для каждого отдельного сопряжения значений через ticket_id и foo.
НЕПРАВИЛЬНО: SELECT foo, DISTINCT ticket_id FROM table...
Если есть три разных значения ticket_id, будет ли это возвращать только три строки? Что, если есть шесть различных значений foo? Какие три значения шести возможных значений foo должны быть выведены?
Это двусмысленно, как написано.
Вместо вы можете использовать группу. Потому что, когда вы используете разные, вы будете бороться за выбор всех значений из таблицы. В отличие от того, когда вы используете группу, вы можете получить различные значения, а также все поля в таблице.
Вы можете так использовать
mysql_query ( "SELECT DISTINCT (ticket_id), column1, column2, column3 FROM temp_tickets ORDER BY ticket_id" )
используйте подзапрос: