Имеется таблица, в которой есть поля, ID которых не повторяются, но в запросе к данной таблице ID могут(будут) повторяться
SELECT * FROM `table` WHERE `id` IN (1,3,7,3)
Результатом будет лишь 1 строка с ID = 3, а не 2. Есть ли возможно сформировать запрос так, чтобы в ответе было 2 одинаковых строки (если это требуется)?
делаю все так, просто данные могут повторяться, чтобы не хранить повторы в таблице (столбцов в которой достаточно много), в другой таблице есть повторы ИД. Потребовалось получить содержимое первой таблицы и вывести его столько, сколько оно будет повторяться. Пример с машинами: есть 3 одинаковых машины у 5 пользователей, я храню параметры всего 1-го вида машины и не важно сколько копий она имеет, вывод делаю 5 раз для 5 пользователей одной и той же машины (допустим это главная, на которой пользователи могут представить свои автомобили).
hrvasiliy: И где там in? Берите исходные таблицы с отношением "один ко многим", и нужный запрос получится сам собой. Преждевременная оптимизация — зло.
Это обычная ситуация для баз данных. Так, например, прикручиваются любые справочники к таблицам с данными и проч.
В моем примере table2 - это ваша 'table', а table1 - это таблица из которой берутся повторяющиеся ID, поле t1.table2id - это поле в таблице table1, где содержится ID из table2.