0
タイトルはちょっと混乱するかもしれませんが、問題をほんの数ワードで説明するのは難しいです。別のテーブルのエントリに基づいてテーブルのデータを照会してください
CREATE TABLE IF NOT EXISTS `private_crawler_urls` (
`id` int(11) NOT NULL,
`url` text NOT NULL,
`hash` varchar(47) NOT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `private_crawler_url_checks` (
`id` int(11) NOT NULL,
`url_id` int(11) NOT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`total_proxies` int(11) NOT NULL,
`working_proxies` int(11) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=78 DEFAULT CHARSET=latin1;
は今、私は与えられたタイムスパン(例えば10分)よりも新しいprivate_crawler_url_checks
にエントリがありませんprivate_crawler_urls
からすべてのURLを選択します:だから私は今、重要な2つのテーブルを持っています。それは私が今持っているものです。
SELECT
u.id, u.url, c.created_at
FROM
private_crawler_urls u
INNER JOIN
private_crawler_url_checks c ON (c.url_id = u.id)
WHERE
c.created_at < NOW() - INTERVAL 10 MINUTE
ORDER BY c.created_at ASC
問題は、私はprivate_crawler_url_checks
に古いエントリを削除したくないとして、これは働くことができないということですので、たとえ与えられたタイムスパンよりも古いのエントリが常にありますテーブルに新鮮なものがあります。 私はMySQLをかなり使い慣れているので、これをどのように達成できるか考えていないので、私はあなたの助けが必要です。ありがとう!より多くの情報が必要な場合は、コメントを残してください!
いくつかのサンプルデータに基づいて表示してください。 – 1000111