<script src="https://threejs.org/build/three.min.js"></script>
<script src="https://threejs.org/examples/js/controls/OrbitControls.js"></script>
<canvas id="myCanvas"></canvas>
我正在运行它,但它没有返回任何东西。我知道有一个事实,那里有一个Item.xxxx,那里有信息,但是有一个ITEM_CC_PAT.xxxx它应该在那些列中返回Null。有谁知道我能做什么?
我尝试添加此功能,但它仍然没有返回任何内容。
select
ITEM.ITEM_ID, ITEM.ITEM_NO, ITEM_CC_PAT.CC_ID,
ITEM_CC_PAT.PAT_CHRG_NO,
ITEM_CC_PAT.PAT_CHRG_PRICE
from
ITEM, ITEM_CC_PAT
where
ITEM.ITEM_ID = ITEM_CC_PAT.ITEM_ID
and ITEM.ITEM_NO = '000642'
答案 0 :(得分:2)
您需要左连接。使用现代联接实现...像这样:
select ITEM.ITEM_ID, ITEM.ITEM_NO, ITEM_CC_PAT.CC_ID,
ITEM_CC_PAT.PAT_CHRG_NO,
ITEM_CC_PAT.PAT_CHRG_PRICE
from ITEM
left join ITEM_CC_PAT on ITEM.ITEM_ID = ITEM_CC_PAT.ITEM_ID
where ITEM.ITEM_NO = '000642'
答案 1 :(得分:0)
也许你正在寻找左外连接。
select ITEM.ITEM_ID, ITEM.ITEM_NO, ITEM_CC_PAT.CC_ID,
ITEM_CC_PAT.PAT_CHRG_NO,
ITEM_CC_PAT.PAT_CHRG_PRICE
from ITEM
left outer join ITEM_CC_PAT on ITEM.ITEM_ID = ITEM_CC_PAT.ITEM_ID
where ITEM.ITEM_NO = '000642'
答案 2 :(得分:0)
你需要的是一个JOIN子句,有很多类型INNER JOIN,NATURAL JOIN,LEFT,RIGHT ...左表如果你声明的第一个表,右表是第二个。左连接意味着将对第二个表测试左表中的所有记录。然后,当没有匹配时,它将显示匹配和NULL。
内部联接将比较两个表,并仅在匹配时显示结果。
自然连接比较两个表中出现的具有相同名称的所有列。
这是您在数据库中使用主键和外键的方式。
查询应如下所示:
SELECT i.ITEM_ID, i.ITEM_NO, p.CC_ID, p.PAT_CHRG_NO, p.PAT_CHRG_PRICE
FROM ITEM i INNER JOIN ITEM_CC_PAT p
ON i.ITEM_ID = p.ITEM_ID
AND i.ITEM_NO = '000642';
此外,您应该使用别名来使代码更短,更易读,而且它是正确的方法。请注意如何创建和使用别名。 &#34; ITEMS i或ITEM_CC_PAT p&#34;在这种情况下。 然后你可以通过使用i或p作为前缀来引用表格E.g: i.ITEM_ID,i.ITEM_NO,p.CC_ID等
答案 3 :(得分:0)
我和其他人一样,你需要按如下方式指定JOIN的类型:
SELECT
ITEM.ITEM_ID
,ITEM.ITEM_NO
,ITEM_CC_PAT.CC_ID
,ITEM_CC_PAT.PAT_CHRG_NO
,ITEM_CC_PAT.PAT_CHRG_PRICE
FROM ITEM
LEFT OUTER JOIN ITEM_CC_PAT
ON ITEM.ITEM_ID = ITEM_CC_PAT.ITEM_ID
WHERE ITEM.ITEM_NO = '000642'
这将为您提供ITEM表中的所有记录,同时允许ITEM_CC_PAT表中的匹配或不匹配(NULL)。