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&#61;e.id)JOINdepartmentASdON(e.department_id&#61;d.id)WHEREd.code&#61;&#39;编号&#39;ANDb.upDate<&#61;&#39;日期&#39;ANDb.downDate>&#61;&#39;日期&#39;
外键只是一种完整性的约束.从SQL语句上面来说,有没有外键,查询语句的写法差不多都是一样的.SELECTd.nameFROMbusinessASbJOINemployeeASeON(b.employee_id&#61;e.id)JOINdepartmentASdON(e.department_id&#61;d.id)WHEREd.code&#61;&#39;编号&#39;ANDb.upDateANDb.downDate>&#61;&#39;日期&#39;
用字段的完全限定名:表名.字段名tablename.fieldname
select*frominformation_schema.TABLE_CONSTRAINTStwheret.TABLE_NAME&#61;&#39;itcast_student&#39;andCONSTRAINT_TYPE&#61;&#39;FOREIGNKEY&#39;;不加type的话,就是所有的约束了,你知道的,还有可以用图形界面的工具啊操作很方便,不用写sql就可以删除,比如:navicatformysql,mysqlworkbench都是很好用的管理工具!
selecta.id,b.id,c.idfromaleftjoinbona.bid&#61;b.idleftjoincona.cid&#61;c.id
selectt.book_typefromt_bookb,t_book_typetwhereb.type_id_fk&#61;t.typeid
#查看数据库所有表SELECTtba.TABLE_NAMEFROMinformation_schema.TABLEStbaWHEREtba.TABLE_SCHEMA&#61;&#39;你要查的数据库名字&#39;#查看某个库中的一个表是哪些表的外键SELECTTABLE_NAMEFROMKEY_COLUMN_USAGEWHERECONSTRAINT_NAME&#61;&#39;FK_PRODUCT_ID&#39;ANDREFERENCED_TABLE_NAME&#61;&#39;表的名字&#39;ANDREFERENCED_TABLE_SCHEMA&#61;&#39;表的的数据名字&#39;
判断外键关系可以使用如下SQL查询语句.SELECT*FROM&#96;information_schema&#96;.&#96;KEY_COLUMN_USAGE&#96;whereconstraint_name&#61;&#39;key_name&#39;