我有一个与 sql 中的查询相关的问题。我有下一张桌子:
id name
1 name1
2 country1
3 name2
4 country2
我需要这样称呼结果:
id name id country
1 name1 2 country1
3 name2 4 country2
提前感谢您的帮助。
要回答这里的问题是查询
我根据盯着输出提出了这个查询
如果有一个名为 name_country 的表可能会像这样:
这样一来,您可以维护 name_country 表,使得 name 和 country 在原始表中不必是 1 个 id。您可以自由地批量输入姓名。稍后,附加国家/地区值。
一旦你可以创建一个 name_country 表,你就可以像这样进行连接:
更新 2012-08-15 15:04 EDT
我首先建议的查询
是答案
首先是您的示例数据
这是您加载的示例数据
这是我执行的原始查询
虽然查询适用于您的示例数据,但您必须密切注意名称与国家/地区的关系。您必须确保三件事才能让我的查询工作
这是我能够利用的一种关系。
在您的示例数据中还可以看到另一种关系:每个字段末尾的数字。如果您可以批量输入姓名,然后批量加载国家/地区,则您将不得不依赖每个姓名字段末尾的数字。这样的查询看起来像这样:
并将执行如下
或者这个查询
这将执行如下
所有这些查询都对数据的内容做出假设。这样的查询会产生很差的性能结果。这就是为什么我建议创建一个外部表来执行将 name 的 id 与其国家/地区耦合在一起的 JOIN。
更新 2012-08-16 17:19 EDT
回答评论中的最后一个问题
如果描述涉及不同的表,那么可能是: