gpt4 book ai didi

mysql - 如何左连接 2 个不同数据库上的 2 个表?

转载 作者:IT老高 更新时间:2023-10-29 00:03:50 26 4
gpt4 key购买 nike

我的第一个数据库 (dbA) 有这样的表,名为 Username :

+------------------+--------------+
| Username | PhoneNumber |
+------------------+--------------+
| jamesbond007 | 555-0074 |
| batmanbegins | 555-0392 |
+------------------+--------------+

然后,在另一边,我有 dbB 和这样的表,名为 PrivateMessage :

+------------------+---------------------------------+
| Username | Message |
+------------------+---------------------------------+
| jamesbond007 | I need new bond-girl |
| batmanbegins | thanks for the paycheck, Nolan |
+------------------+---------------------------------+

现在,如何合并来自 2 个不同数据库的这两个表,使输出看起来像这样:

+------------------+--------------+---------------------------------+
| Username | PhoneNumber | Message |
+------------------+--------------+---------------------------------+
| jamesbond007 | 555-0074 | I need new bond-girl |
| batmanbegins | 555-0392 | thanks for the paycheck, Nolan |
+------------------+--------------+---------------------------------+

最佳答案

您可以简单地连接不同数据库的表。您需要在 FROM 子句中指定数据库名称。为了让它更短,在上面添加一个ALIAS

SELECT  a.*,          -- this will display all columns of dba.`UserName`
b.`Message`
FROM dba.`UserName` a -- or LEFT JOIN to show all rows whether it exists or not
INNER JOIN dbB.`PrivateMessage` b
ON a.`username` = b.`username`

但在某些情况下,username 中可能没有消息。在这种情况下,如果您仍想显示 dba.Username 的所有记录,请使用 LEFT JOIN

根据您的评论,这些表格有不同的collat​​ion。解决此问题的方法是在您的连接语句上指定 COLLATE

SELECT  a.*,          -- this will display all columns of dba.`UserName`
b.`Message`
FROM dba.`UserName` COLLATE latin1_swedish_ci a
LEFT JOIN dbB.`PrivateMessage` COLLATE latin1_swedish_ci b
ON a.`username` = b.`username`

您可以将 latin1_swedish_ci 更改为您想要的任何内容。

有关 COLLATION 的更多信息,请参阅此完整列表

Character Sets and Collations in MySQL


如果您有足够的权限ALTER表,只需使用此语法手动转换和匹配它们的排序规则,

ALTER TABLE tbl_name CONVERT TO CHARACTER SET latin2 COLLATE 'latin2_general_ci';

关于mysql - 如何左连接 2 个不同数据库上的 2 个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12685193/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com