Home  >  Article  >  Backend Development  >  关于一个MySQL的一个查询问题

关于一个MySQL的一个查询问题

WBOY
WBOYOriginal
2016-06-06 20:48:001025browse

新手问个问题:

有三个表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跨表延迟会很高,当并发量上去了之后,就会出现各种意想不到的问题。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn