, чтобы ответить на другую часть вопроса, вы должны сделать:
select count(*) from tablename where fr = contactid;
, поскольку «ссылки» указывает, что поле fr содержит значения из поля id в контактах.
некоторые дополнительные детали: у вас есть две таблицы: контакты и «имя таблицы».в контактах у вас есть данные о разных людях, я думаю, и у каждого есть идентификатор.в «tablename» у вас есть дополнительная информация, где каждая строка в таблице «о» или «принадлежит» кому-то в контактах.поэтому каждая строка в «имени таблицы» имеет запись в «fr», которая идентифицирует человека.он делает это, содержащий копию значения идентификатора для этого человека (предположительно, у каждого человека свой идентификатор).это то, что вам говорят «ссылки» - что «fr» содержит копию «id».
, поэтому вы хотите найти количество вещей в «tablename» для каждого человека.часто это означает объединение двух таблиц, но в этом случае вам не нужно, потому что в "tablename" уже есть локальная копия идентификатора человека.так что все, что вам нужно сделать, это найти те строки в «имя таблицы», которые имеют идентификатор человека, и сосчитать их.это означает, что вам просто нужно найти те строки, где "fr" равен id (потому что вы знаете, что это копия id из контактов).