一个简单的sql查询没有主外键字段的语句

心泉梦帅 2012-01-13 08:49:53
假如我有一张表A,字段是Sno,SAdd。其中Sno是B表的外键,那么求一条sql语句只得到字段SAdd。(也就是说那些是主外键的字段不要查出来,我在做一个表的数据导入,那些字段让后台代码自己完成插入。)
...全文
178 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
心泉梦帅 2012-01-13
  • 打赏
  • 举报
回复
我是楼主~
也就是说我有个A表 他的字段是 Sno,Sco,Sname,Sadd,Sage。其中字段Sno是主键,他是一个外键表的主键(我说的不清这个名词我不知道用什么表达。。我想应该能看懂吧)。同时字段Sco是一个主键表相关联的字段,那么我想要用条sql语句查出字段Sname,Sadd,Sage。(我在做数据导入,Sno虽然不是自增,但在代码里他会自己加1。Sco是根据别的表来加的,也就是别的表一个数据位10,那么他也会是10。所以我想要条sql语句只要Sname、Sadd、Sage这三个字段
心泉梦帅 2012-01-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 w198933333 的回复:]

select A.SAdd from A where A.Sno=B.Sno
2楼也是正解。
不过楼主,我估计你那需求里还有关于B表的条件,你这里没有提供,不然直接select SAdd from A就好了,既然要关联B表,而且仅显示A表里的字段,那么B表肯定是有其他条件的,不然这里关联B表就毫无意义。
[/Quote]
我就是楼主啊。。。
SELECT 外键列名=(SELECT name FROM syscolumns WHERE colid=b.fkey AND id=b.fkeyid) FROM sysobjects a join sysforeignkeys b on a.id=b.constid join sysobjects c on a.parent_obj=c.id where a.xtype='f' AND c.xtype='U' and object_name(b.fkeyid )='表名',这条语句可以得到查询的表中有外键的字段。可能是我对主机表外键表描述的不清晰吧
w198933333 2012-01-13
  • 打赏
  • 举报
回复
select A.SAdd from A where A.Sno=B.Sno
2楼也是正解。
不过楼主,我估计你那需求里还有关于B表的条件,你这里没有提供,不然直接select SAdd from A就好了,既然要关联B表,而且仅显示A表里的字段,那么B表肯定是有其他条件的,不然这里关联B表就毫无意义。
冰镇宝贝321 2012-01-13
  • 打赏
  • 举报
回复
select A.sadd from A inner join B on A.sno=b.sno
这个吧 试试
心泉梦帅 2012-01-13
  • 打赏
  • 举报
回复
额。。。。不会
EnForGrass 2012-01-13
  • 打赏
  • 举报
回复
sql根据property可以找到那些是主键,那些是外键?这是一个思路,是可以试一试
心泉梦帅 2012-01-13
  • 打赏
  • 举报
回复
、、、怎么会是这样的。。。
SELECT 外键列名=(SELECT name FROM syscolumns WHERE colid=b.fkey AND id=b.fkeyid) FROM sysobjects a join sysforeignkeys b on a.id=b.constid join sysobjects c on a.parent_obj=c.id where a.xtype='f' AND c.xtype='U' and object_name(b.fkeyid )='表名',这条语句可以得到查询的表中有外键的字段。
bdmh 2012-01-13
  • 打赏
  • 举报
回复
select A.sadd from A inner join B on A.sno=b.sno
MySQL数据库环境中,外键约束是用来建立和维护两个表之间关系的重要机制。它能够确保数据的一致性和完整性,特别是在涉及一对多或多对多的关系时起到关键作用。在本教程中,我们将详细讲解如何在现有表中添加外键约束。我们有两个表:信息表`message`和课程表`course`。信息表中的`m_c_id`字段被设计为外键字段,并指向课程表的字段`c_id`,从而实现了每个信息条目与一个课程之间的关联关系。 要实现这一功能,请按照以下步骤操作: 1. 使用MySQL命令行工具执行修改现有表结构的操作。 2. 在`ALTER TABLE`语句中指定需要添加外键字段,并明确其对应的字段。 3. 在`ALTER TABLE`语句后定义外键约束,确保遵守数据类型的一致性要求。 具体操作可以通过以下SQL指令实现: ```sql ALTER TABLE message ADD FOREIGN KEY (m_c_id) REFERENCES course(c_id); ``` 执行此命令后,信息表中的`m_c_id`字段将被标记为外键字段,并与课程表的字段形成关联。在查询信息表列数据时,会发现`m_c_id`字段具有多重索引特性(即外键约束)。 需要注意的是: 效果预览: https://pan.quark.cn/s/a4b39357ea24 - 外键字段的数据类型必须与对应的字段一致。 - 外键字段可以允许为空值,但其对应字段不允许存在重复值(通常为字段)。 - 插入或更新操作时,若外键所在表中的键不存在,则MySQL会抛出错误信息。除非已启用`ON DELETE`和`ON UPDATE`选项,此时这些规则将指导外键字段的处理方式。 当采用`O...

17,748

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧