我有一张像下面这样的表,目前没有rating
,lib_id
或的值votes
。
图书馆
id | title | year | rating | votes | lib_id |
---------------------------------------------
1 | book1 | 1999 | | | |
2 | book2 | 2010 | | | |
3 | book3 | 2009 | | | |
4 | book4 | 2007 | | | |
5 | book5 | 1987 | | | |
然后我有一个看起来像这样的分类表。
分类
id | title | year | rating | votes | lib_id |
---------------------------------------------
108 | book154 | 1929 | | | |
322 | book23 | 2011 | | | |
311 | book3 | 2009 | 9.3 | 4056 | 10876 |
642 | book444 | 2001 | | | |
533 | book567 | 1981 | | | |
库表中的条目可能不会出现在分类表中,反之亦然。书名也有可能不是唯一的。所以我想要做的是遍历库表中的每一行,获取title
和year
列,转到classifications
表并找到具有这两个值的行,检索相应的rating
,votes
和lib_id
列并更新库表中的条目。
我也想使用 PDO。下面是我想要实现的一个非工作示例。
$update_vals_STH =
$DBH->prepare(
"UPDATE library SET lib_id=?, rating=?, votes=?
FROM (SELECT lib_id, rating, votes)
FROM classifications WHERE title=? AND year=?";
任何帮助,将不胜感激。我对 MySQL 很陌生,并且一直在努力解决这个问题。