【发布时间】:2017-11-11 12:58:24
【问题描述】:
我有 2 个表,一个包含带有唯一 ID 的客户列表 (t_client),另一个包含促销代码列表 (t_promo_code)。 我已经为两个数据表创建了索引:idx_client; idx_code 和我想加入这两张表,这样每个客户都可以有一个促销代码。
我想SQL server中应该有这样的东西?
SELECT *
FROM [EMAIL].[dbo].[T_client]
JOIN [EMAIL].[dbo].[T_promo_code] ON
(INDEX([EMAIL].[dbo].[T_client].idx_client)) = (INDEX ([EMAIL].[dbo].[T_promo_code].idx_code))
但是,我什么也找不到……而且我对 Index 真的不熟悉。如果我可以将索引变成一列,那会容易得多,但我也不知道该怎么做。 我只找到了这样一个select语句:
Select @row_index := @row_index +1 as index
但它似乎只适用于 MYSQL,而我使用的是 SQL SERVER 2008。
有什么想法吗?
【问题讨论】:
-
你想要达到什么目的?
-
如果索引配置得好,SQL server(通常)会为你选择最好的计划,“索引加入”发生在后台。您需要连接表中的列。查看查询的执行计划,如果仍需要调整,则修改索引。您可以指定索引的某些方面(例如:并行性),但为了您的目的,您只需要专注于编写 SQL 查询而不是索引的使用。
-
话虽如此,为了帮助您进行此查询,我们需要知道您的 2 个表之间匹配的 2 列。这不会是客户=代码。那不会返回匹配项。请使用表格中的列更新帖子(右键单击表格,将表格脚本作为,创建到)并将其粘贴到帖子中。然后我们可以帮助您进行 JOIN 查询。
-
“每个客户都可以拥有一个促销代码”是什么意思?请张贴样本数据。忘记强制索引,这些是自动使用的