Запрос дублирует данные.

Buldozer

Новичок
Запрос дублирует данные.

есть таблица

mysql> describe spider_list;
+------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------------+------+-----+---------+-------+
| link_id | int(10) unsigned | NO | PRI | | |
| status | tinyint(1) unsigned | NO | MUL | | |
| check_date | int(10) unsigned | NO | MUL | | |
+------------+---------------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> select * from spider_list where link_id = 43402105;
+----------+--------+------------+
| link_id | status | check_date |
+----------+--------+------------+
| 43402105 | 4 | 0 |
+----------+--------+------------+
1 row in set (0.00 sec)


link_id это примари кей, и естественно такая запись там только одна, но запрос

mysql> select spider_list.link_id from spider_list, complete_links_alt, orders, customer_site, payments_history where spider_list.link_id = complete_links_alt.link_id and complete_links_alt.order_id = orders.order_id and orders.customer_id = customer_site.site_id and customer_site.login = 'testuser' and spider_list.status = 4 and payments_history.link = complete_links_alt.link_id;
+----------+
| link_id |
+----------+
| 43402105 |
| 43402105 |
+----------+
2 rows in set (1.34 sec)


возвращает две записи. Разьве он не должен вывести одну?
 

kruglov

Новичок
Вы ж таблицы объединяете, вот в какой-то из них 2 записи по одной link_id.

Сделайте distinct или group by
 

kruglov

Новичок
Buldozer
Ну, при выполнении такого примитивного запроса за полторы секунды (при одних равенствах-то) я бы озаботился введением индексов для увеличения быстродействия на пару-тройку порядков.
 

Buldozer

Новичок
все индексы есть, просто таблицы большие 30-35 млн записей, и нагрузка не меньше.
 

kruglov

Новичок
все индексы есть
Те ли...

-~{}~ 16.08.07 16:29:

И запрос, может, на joinы переписать? Но это так, из соображений наглядности, что с чем объединяется и какие индексы нужны...
 
Сверху