假如有4个表 A表中的goods_id 等于B表中的 id B表中 img_id 等于 C表中的 id, B表中的 size_id等于D表的id
_从互联网上看到多表联合查询的格式为
SELECT a.name,b.address,c.company From user as a JOIN user_address as b ON a.id = b.uid
JOIN user_company AS C ON a.id = c.uid
格式是没问题的吧?!
现在为了用join完成上面四个表的查询 以下的写法是可以查出唯一 值的吗?那么是不是意味着
Join不同表不一定要 a.字段 = b.字段 a.字段 = c.字段
SELECT a.*,b.*,c.* d.* From A as a JOIN B as b ON a.goods_id = b.uid
JOIN C AS c ON b.img_id = c.id JOIN D AS d ON b.size_id = d.id where a.id =4
SQL JOIN分为四种:
A. INNER JOIN:表中至少有一个匹配才返回行,若无,则不返回
B. LEFT JOIN:即使右表中没有匹配,也从左表返回行
C. RIGHT JOIN:即使左表中没有匹配,也从右表返回行
D. FULL JOIN:只要其中一个表存在匹配就返回行
上w3school看看。
ON 索引条件,满足条件的就会查询出来,原则上来说,这句SQL查出来的是唯一的。
有点建议,查询的时候不要用 a.* 这种表示,查询速率慢,而且相同字段取值有争议,部分数据库会报错。