2015-09-22 7 views
2

У меня есть запрос, который нацелен на несколько таблиц. Я обнаружил, что у меня много дублирующих страниц, которые мне нужно исправлять. Например, 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

с помощью LIMIT 1 ограничит результат до 1 ВЫБРАТЬ:

$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 
WHERE Combined.URL LIKE :XURL LIMIT 1"); 
+0

О, так что, если я добавлю «лимит 1», тогда мне не нужно беспокоиться о дубликатах? Это неожиданный хороший совет; спасибо. Тем не менее, мне все равно хотелось бы узнать, как отображать дубликаты в моей базе данных, поэтому я могу работать с ними. Просто показать простой список дубликатов будет большой помощью. –

+0

да. но если у вас есть уникальный идентификатор, например, идентификатор пользователя, и вы добавляете его на WHERE usr_id =. вы должны использовать INNER JOIN, чтобы присоединиться к обеим таблицам. –

+0

Извините, я смущен; вы говорите, что если я хочу отобразить список повторяющихся значений, я должен использовать соединение INNER? Я не уверен, что вы подразумеваете под идентификатором пользователя. –

Смежные вопросы