Heim >Backend-Entwicklung >PHP-Tutorial >关于一个MySQL的一个查询问题
新手问个问题:
有三个表A、B、C
A是存储的文章里面有ID字段TITLE字段和CONTENT字段
B是一个连接A与C的表里面有AID和CID字段
C是一个存储A文章标签的表
我要通过A表里的ID查询出属于他的标签用
SELECT * FROM B WHERE AID = A.ID
然后用得到的数据再用同样方法查询C表
SELECT * FROM C WHERE ID = B.CID
因为我是初学MySQL所以不知道有没有更好的办法能一次查询就就可以完成我现在两部的工作?
新手问个问题:
有三个表A、B、C
A是存储的文章里面有ID字段TITLE字段和CONTENT字段
B是一个连接A与C的表里面有AID和CID字段
C是一个存储A文章标签的表
我要通过A表里的ID查询出属于他的标签用
SELECT * FROM B WHERE AID = A.ID
然后用得到的数据再用同样方法查询C表
SELECT * FROM C WHERE ID = B.CID
因为我是初学MySQL所以不知道有没有更好的办法能一次查询就就可以完成我现在两部的工作?
试试 :
假设A有个ID为10
SELECT * from C where C.ID in(select CID from B where AID=10)
也可以:
select C.tag from C right join B on C.ID=B.CID where B.AID=10
出于性能的考虑,十分建议分开查,然后用动态语言进行表间操作。
mysql跨表延迟会很高,当并发量上去了之后,就会出现各种意想不到的问题。