我有第一个数据库 (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
没有消息。在这种情况下,LEFT JOIN
如果您仍要显示的所有记录,请使用dba.Username
。
从您的评论中读取,这些表具有不同的collation
。解决此问题的方法是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的更多信息,请参阅以下完整列表
MySQL中的字符集和排序规则
如果您ALTER
对表有足够的特权,只需使用此语法即可手动转换并匹配它们的排序规则,
ALTER TABLE tbl_name CONVERT TO CHARACTER SET latin2 COLLATE 'latin2_general_ci';
问题内容: 我需要比较2个不同数据库中的数据库表,以了解差异所在,是否有一个简单的工具或脚本来实现? 问题答案: redgate SQL数据比较
问题内容: 我试图通过在经典ASP中查询2个数据库(Sybase)来生成报告。 我创建了2个连接字符串: 数据库 A的connA数据库B的connB 两个数据库都位于同一台服务器上(不知道这是否重要) 查询: 其次是: 当我尝试在浏览器中打开此页面时,出现错误消息: Microsoft OLE DB提供程序的ODBC驱动程序错误‘80040e37’ 找不到[DataDirect] [ODBC Sy
问题内容: 我有以下代码在PDF内绘制垂直条形图和折线图。 如何将这2个图形保存在PDF的2个不同页面中。我看到可以使用- 但是,不是使用Canvas,而是使用其中 不存在方法的Drawing对象。 如何将2个图形保存在PDF的2个不同页面中?第二个图形(折线图)的右边与第一个图形(垂直条形图)重叠,从而阻碍了该条形图。 这是我的 代码。 问题答案: 制作画布并在其上渲染图形: 希望能帮助到你 :
有没有办法通过两个列表< code>join两个< code > Spark data frame 具有不同的列名? 我知道如果他们在列表中有相同的名字,我可以做以下事情: 或者,如果我知道不同的列名,我可以这样做: 由于我的方法需要2个列表的输入,这些列表指定哪些列将用于每个DF的,因此我想知道Scala Spark是否有办法做到这一点? 页(page的缩写)我在寻找类似python的东西< c
问题内容: 我需要在一个查询中计算两列中某些数据的出现总数。数据库位于SQL Server 2005中。 例如,我有此表: 我需要查询一个结果: 1.名为“约翰”的人数 2.年龄超过30岁的“约翰”的人数。 我可以通过这种方式对子查询进行操作(这只是示例): 但这非常慢,我正在寻找更快的方法。 与使用子查询相比,您是否知道一种更好的方法来计算一个查询中的少量计数? 问题答案: 使用CASE语句,您
问题内容: 在MySQL中,我有两个不同的数据库-我们姑且称之为 一个 和 乙 。 是否可以在数据库 A 中的表与数据库 B中 的表之间执行 联接 ? 问题答案: 是的,假设该帐户具有适当的权限,则可以使用: 您只需要在表引用前面加上它所驻留的数据库的名称即可。