У меня есть запрос, который нацелен на несколько таблиц. Я обнаружил, что у меня много дублирующих страниц, которые мне нужно исправлять. Например, URL-адрес mysite/africa не будет отображаться, потому что в моих таблицах базы данных есть полдюжины экземпляров «africa». Немного сложно отследить все обманы, потому что у меня есть тысячи строк данных в нескольких таблицах базы данных.Как я могу запросить дубликаты?
Может ли кто-нибудь сказать мне, как я могу изменить этот запрос, чтобы он отображал ТОЛЬКО предметы, которые являются обманами? Еще лучше, есть ли способ отобразить количество обманов для каждого элемента? Так, например, сказать, что я шесть экземпляров «африки» в моей базе данных и два экземпляра «грузия», он будет отображать это:
Африка (6) грузия (2)
$stm = $pdo->prepare("SELECT *
FROM (
SELECT URL, IDArea, IDParent, Name, 'landform' AS TypeX FROM gw_geog_landforms WHERE Dupe = '0'
UNION ALL
SELECT URL, IDArea, IDParent, Name, 'uno' AS TypeX FROM gw_geog
) AS Combined");
$stm->execute(array(
));
О, так что, если я добавлю «лимит 1», тогда мне не нужно беспокоиться о дубликатах? Это неожиданный хороший совет; спасибо. Тем не менее, мне все равно хотелось бы узнать, как отображать дубликаты в моей базе данных, поэтому я могу работать с ними. Просто показать простой список дубликатов будет большой помощью. –
да. но если у вас есть уникальный идентификатор, например, идентификатор пользователя, и вы добавляете его на WHERE usr_id =. вы должны использовать INNER JOIN, чтобы присоединиться к обеим таблицам. –
Извините, я смущен; вы говорите, что если я хочу отобразить список повторяющихся значений, я должен использовать соединение INNER? Я не уверен, что вы подразумеваете под идентификатором пользователя. –