问题描述:
ibatis (sql) 如何查 级联的多张表的内容
解决方案:
(实例如下)
<!-- 为成品种类管理列表 查询出成品信息 -->
<select id="sAllGoods4TypeManage" resultClass="Good4TypeManage">
<![CDATA[
SELECT
g.id as id, g.weight as weight, g.width as width, g.good_type_num as goodTypeNum, /* 查询 id, 克重,门幅,货号 */
t.fur_height as furHeight, /* 毛高 */
f.name as goodFormName, /* 成品类型 */
c.name as colorName, /* 颜色名称 */
a.name as craftName /* 特殊工艺 名称 */
FROM
sd_good g
LEFT JOIN sd_good_type t ON g.good_type_num = t.good_type_num
LEFT JOIN sd_good_form f ON t.good_form_id = f.id
LEFT JOIN sd_color c ON t.color_id = c.id
LEFT JOIN sd_craft a ON t.craft_id = a.id
WHERE g.deleted = 0 /* 保证该成品是没有被删除的 */
ORDER BY g.id
]]>
</select>
如果第一张表(如上图中 sd_good)为空表,则搜索出的记录为零,不会报错。如果 是处在末节点的表(如 sd_good_color等)有表为空表,也不会报错。
但是,如果是中间的表,如上图的sd_good_type ,就将报错。