Вы не можете этого сделать, поскольку индекс массива в java начинается с 0. Но вы можете получить доступ к массиву с индексом 1 с небольшими изменениями.
Пример: Рассмотрим целочисленный массив «a» с длиной n
for(int i=0;i<n;i++) {
System.out.println(a[i]);
}
Это может быть изменено как:
int a[] = new int[n+1];
for(int i=1;i<n+1;i++) {
System.out.println(a[i]);
}
Соедините две таблицы и сгруппируйте их по столбцам.
SELECT cr.register_id, cr.number, COUNT(*) AS cnt
FROM tbl_cross AS cr
JOIN tbl_register as r ON cr.register_id = r.id
WHERE r.collection_id = 56
GROUP BY register_id, number
HAVING cnt > 1
Вы можете использовать HAVING
для фильтрации недубликатов, подзапрос вам не нужен.
Вы прямо спрашиваете об утверждении GROUP BY. Вы хотите, чтобы ваш register_id был сгруппирован так, чтобы у вас не было дубликатов, но вы также могли видеть номер каждого зарегистрированного идентификатора.
Технология в сети - фантастический справочник для всех ваших вопросов по SQL: https://www.techonthenet.com/sql/group_by.php
Всего наилучшего и добро пожаловать в Stackoverflow !!
Я верю, что вы ищете что-то вроде этого:
SELECT *
FROM (
SELECT
reg.id,
reg.collection_id,
cr.number,
COUNT(*) AS ct
FROM tbl_registers AS reg
INNER JOIN tbl_cross AS cr
ON cr.register_id = reg.id
GROUP BY
reg.id,
reg.collection_id,
cr.number
) duplicates
WHERE duplicates.ct > 1
-- AND duplicates.collection_id = 56