$product = Book::select('name', 'id', 'user_id')->where('books.user_id', '=', 1)
->whereNotExists(function($query)
{
$query->select(DB::raw(3))
->from('music')
->whereRaw('music.name = books.name');
})
->get();
上面的代码从books表中为单个用户选择3行,其中books表和music表之间没有重复的名称。但是,我想要做的是将这些行复制到音乐表中。
所以我想这样做
$product = Book::select('name', 'id', 'user_id')->where('books.user_id', '=', 1)
将这些行复制到没有重复名称的音乐表中?还有一种方法可以复制所有行而不必选择行数吗?
答案 0 :(得分:0)
将$ product变量重命名为$ products,因为它不止一个。
然后从查询中保存到musuc表中意味着遍历产品:
// Get the books you want to copy
//using your query or you can also use (distinct()) to get unique records
// iterate through the books that have a unique name
foreach ($products as $product){
// save them in your music table using either your model or an insert query
$song = Music::create(array($product->name ...etc...));
}