比如我有A,B,C,D,E五张表,我要怎么把这五张表的数据一次性查出来,并且按照这5个表的共同字段time来排序
这个简单呀,我写个给你看看,你一看就明白了,我的例子是三表查询,
$sql="select productimages.* ,product.*,class.* from productimages,product ,class where productimages.productid=product.id and product.class_id=class.id order by product.time ";
$selsql = $pdo->prepare($sql);
$selsql->execute();
如果A,B,C,D,E 5张表的uid 都是关联的话
SELECT A.*,B.*,C.*,D.*,E.* FROM A LEFT JOIN B ON A.uid = B.uid LEFT JOIN C ON B.uid = C.uid LEFT JOIN D ON C.uid = D.uid LEFT JOIN E ON D.uid = E.uid ORDER BY A.time DESC
或者SELECT A.*,B.*,C.*,D.*,E.* FROM A INNER JOIN B ON A.uid = B.uid INNER JOIN C ON B.uid = C.uid INNER JOIN D ON C.uid = D.uid INNER JOIN E ON D.uid = E.uid ORDER BY A.time DESC
还有你的条件如果是根据 A 来的话 ,就都用A表的 uid 来关联其它表 --ex:SELECT A.*,B.*,C.*,D.*,E.* FROM A LEFT JOIN B ON A.uid = B.uid LEFT JOIN C ON A.uid = C.uid LEFT JOIN D ON A.uid = D.uid LEFT JOIN E ON A.uid = E.uid WHERE A.uid = xxxx ORDER BY A.time DESC
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
5表什么关系,1对1,1对多,多对多?
无关系:
SELECT
*
FROM
A
,B
,C,
,D
,E
ORDER BY
A.time,B.time,C.time,D.time.,E.time
1对1的关系,一般有:主键对主键:普通字段对主键
主键1对1通常描述扩展关系,比如1个身份证号可以在多个银行开户。不普通字段1对1通常是引用关系,比如身份信息中的性别
SELECT
*
FROM
A
LEFT JOIN B
ON B.id = A.id
LEFT JOIN C
ON C.id = A.id
LEFT JOIN D
ON D.id = A.id
LEFT JOIN E
ON E.id = A.id
ORDER BY
A.time,B.time,C.time,D.time.,E.time