for (int i = 0; i < ds.Length; ++i)
{
if (i == ds.Length - 1)
{
sql += string.Format("select "主键" from {0} WHERE charindex('{1}',PassingUserIds) > 0 union all", ds[i][0], ActorUserId);
}
else
{
sql += string.Format("select distinct '{0}' from {0} WHERE charindex('{1}',PassingUserIds) > 0 ", ds[i][0], ActorUserId);
}
}
问题描述:我用通过循环去查询不同表的主键的值,因为是不同表的,所以主键也都不一样,找了会百度没找到解决的方法,我想也应该是有这种解决方案的,因为要查的值是主键的值而且是数据表的第一列,就比方说上面的图,我想查这个SignId的值,但我不知道这个字段的名字是什么
同学你对数据库有一点点误解。
首先,主键跟数据表第几列没有任何关系,主键是表的唯一索引。
其次,每张表的主键也都不一样是错误的,数据库常规设计中,所有表的主键都应该相同,一般取名为id等。
你要查一张表的主键: select "主键" from , 这句话的意思是你查询结果全部变成 "主键" 这一个字符串。
我建议你好好学习一下sql的基础知识。。
不同表的,所以主键也都不一样,这句话是错误的,主键有可能一样,包括主键值
SELECT COLUMN_NAME FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA='schema' AND TABLE_NAME='tablename' AND COLUMN_KEY='PRI'
可以查到表的主键字段名字,TABLE_SCHEMA是如果同一个连接不行的库有同名表的话用来区别的,不过代码连接一般都会带上这个的,应该可以不用加。
你就可以用查到的表的主键字段名字去查主键的值