Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 有效地匹配来自两个不同表的值_Mysql_Ruby_Database_Ruby On Rails 3 - Fatal编程技术网

Mysql 有效地匹配来自两个不同表的值

Mysql 有效地匹配来自两个不同表的值,mysql,ruby,database,ruby-on-rails-3,Mysql,Ruby,Database,Ruby On Rails 3,我有两张桌子 class CreateMasterUrls < ActiveRecord::Migration def change \create_table :master_urls do |t| t.string :url t.string :host t.timestamps end add_index :master_urls, [:url], :name => :idx_url add_index :master_urls, [:host]

我有两张桌子

 class CreateMasterUrls < ActiveRecord::Migration
  def change
   \create_table :master_urls do |t|
  t.string :url
  t.string :host

  t.timestamps
 end
 add_index :master_urls, [:url], :name => :idx_url
 add_index :master_urls, [:host], :name => :idx_host
 end
end
class CreateMasterUrls:idx\u url
添加索引:master\u url,[:host],:name=>:idx\u host
终止
终止

class CreateUrlList
我想检查URL_列表表中的URL是否存在于主URL中,若不存在,则将其添加到主URL表中。你知道怎么做吗


一种方法是进行正则表达式匹配。但它效率不高,也不能解决问题。

我会先尝试以下(SQL)方法

insert into master_urls (url)
select ul.url 
from url_list ul
where ul.url not in (select url from master_urls);
这不是最有效的方法,但很容易理解

但这不是你真正的问题


如果要求url_列表中的所有url必须始终位于master_url中,那么您需要使用dbms来确保这一点。根据您的应用程序,您可能需要外键约束、触发器或应用程序代码中的重大更改。

您使用的是哪个数据库?mysql社区版。
insert into master_urls (url)
select ul.url 
from url_list ul
where ul.url not in (select url from master_urls);