首页 > 解决方案 > 是否可以只将一列粘贴到mysql中的另一个表?

问题描述

我有 2 张桌子。

wordlist table
----------------------
wordID  char memorize
---------------------------
1       我   0
2       你   0
3       哀   0
4       阿   0
5       去   0
----------------------------
user_word table
-----------------------------
userID wordID memorize
edward 2      1
anne   1      0
.
.
------------------------------

而我想要做的是调用粘贴的 wordlist 表和 user_word 表的新表。所以如果用户 edward 登录,调用 DB,然后从 user_word 表中找到 edward 的所有数据,并粘贴到 wordlist 表中并发送到前面。所以粘贴的表格应该是这样的。找到相同的wordID,只粘贴记忆

wordID  char memorize
---------------------------
1       我   0
2       你   1
3       哀   0
4       阿   0
5       去   0
---------------------------------

我尝试过使用加入和联合,但它似乎不是正确的方法。这是不可能的吗?

标签: mysql

解决方案


我认为你想要LEFT JOIN(在加入条件中包含用户)然后COALESCE()得到memorize例如

SELECT wl.wordID, 
       wl.char, 
       COALESCE(uw.memorize, wl.memorize) AS memorize
FROM   wordlist AS wl
       LEFT JOIN user_word AS uw 
           ON uw.wordID = wl.wordID
           AND uw.userID = 'Edward' -- Parameterise and send relevant 
                                    -- username from your application

推荐阅读