Я ищу точно противоположное тому, что искал Джонатан в этом примере:MySQL: выбор строк по два из трех первичных ключей
How to select multiple rows by multi-column primary key in MySQL?
Имея 3 колонки в качестве первичного ключа (третий является дата), я хочу выбрать все из них без последней. И если нет второй записи для комбинации первых двух основных значений, я не хочу ее вообще выбирать. Подумайте об этом как о версии управления версиями. Структура таблицы содержит больше столбцов, чем три, и я хочу выбрать целые строки.
кажется что-то вроде этого:
{ID1 | ID2 | DATE} | more columns ...
псевдокод:
SELECT * FROM table WHERE (first and second primary value are the same and exist more than once) AND NOT MAX(date)
: D
Я хочу, чтобы вывести данные всех предыдущих версий строки, не включая самые последние один.
Заранее благодарим за любые предложения!
Ничего себе, это было быстро! Хорошо объяснили и работали! :) –
из-за того, что я не могу редактировать свой комментарий, вот еще один: Вау, это было быстро! Хорошо объяснили и работали! :) первый дает мне именно то, что я искал, второй с левым соединением добавляет столбцы с NULL к моему набору данных, что может мешать реальным данным, не так ли? вы пропустили закрытие -> (<- в вашем первом решении в самом конце :) –
Во-вторых, мы могли бы просто использовать A. * вместо * и нулевые столбцы уйти. и я добавил в отсутствующие). Нулевые столбцы не мешали бы, но они всегда были бы нулевыми, основываясь на критериях присоединения и where where. поэтому бессмысленно, поэтому я добавил A. *. Имейте в виду, что у меня нет данных, поэтому у нас нет возможности «проверить», если мы не будем макетировать данные. – xQbert