mysql 外键查询(mysql数据库多表联查)
2020-07-24 11:51:00
共10个回答
查看方式主要是通过第三方工具或者是sql语句,主要有以下三种方式1:使用Navicateformysql,打开数据库、查看数据库表、查看设计表、选择外键选项卡,就可以查看
现有两个表table1和table2,id相同,均为主键,也就是外键SELECTA.*,B.*fromtable1asA,table2asBwhereA.*=B.*andA.*=*把*换成你的条件--#完了
外键只是一种完整性的约束.从SQL语句上面来说,有没有外键,查询语句的写法差不多都是一样的.SELECTd.nameFROMbusinessASbJOINemployeeASeON(b.employee_id=e.id)JOINdepartmentASdON(e.department_id=d.id)WHEREd.code='编号'ANDb.upDate<='日期'ANDb.downDate>='日期'
外键只是一种完整性的约束.从SQL语句上面来说,有没有外键,查询语句的写法差不多都是一样的.SELECTd.nameFROMbusinessASbJOINemployeeASeON(b.employee_id=e.id)JOINdepartmentASdON(e.department_id=d.id)WHEREd.code='编号'ANDb.upDateANDb.downDate>='日期'
用字段的完全限定名:表名.字段名tablename.fieldname
select*frominformation_schema.TABLE_CONSTRAINTStwheret.TABLE_NAME='itcast_student'andCONSTRAINT_TYPE='FOREIGNKEY';不加type的话,就是所有的约束了,你知道的,还有可以用图形界面的工具啊操作很方便,不用写sql就可以删除,比如:navicatformysql,mysqlworkbench都是很好用的管理工具!
selecta.id,b.id,c.idfromaleftjoinbona.bid=b.idleftjoincona.cid=c.id
selectt.book_typefromt_bookb,t_book_typetwhereb.type_id_fk=t.typeid
#查看数据库所有表SELECTtba.TABLE_NAMEFROMinformation_schema.TABLEStbaWHEREtba.TABLE_SCHEMA='你要查的数据库名字'#查看某个库中的一个表是哪些表的外键SELECTTABLE_NAMEFROMKEY_COLUMN_USAGEWHERECONSTRAINT_NAME='FK_PRODUCT_ID'ANDREFERENCED_TABLE_NAME='表的名字'ANDREFERENCED_TABLE_SCHEMA='表的的数据名字'
判断外键关系可以使用如下SQL查询语句.SELECT*FROM`information_schema`.`KEY_COLUMN_USAGE`whereconstraint_name='key_name'