首頁 >後端開發 >php教程 >关于一个MySQL的一个查询问题

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

WBOY
WBOY原創
2016-06-06 20:48:001067瀏覽

新手问个问题:

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn