长话短说,我有一个优惠券系统项目。 在其中我有公司,优惠券和客户。 所有数据都保存在SQL DB中,基于apache derby。 例如: 公司表上有公司。有id,名字,密码,电子邮件 优惠券表上存在优惠券。有id,标题,价格等。 只有公司可以创建优惠券,它的作用,不仅是在上面提到的优惠券表上创建的,它还填充了第二个“索引”表,加入公司和优惠券= company_coupon。有company_id,coupon_id
现在项目中的其他所有内容都运行得很漂亮,我的老师会检查表格,所有内容都配置正确。
我接下来想做什么,似乎无法弄清楚is的语法: 当我删除公司时,我还想从优惠券表中删除该公司创建的每张优惠券。我这样做是通过在company_coupon表中搜索company_id匹配,并根据与它们配对的coupon_id进行删除。
我正在尝试这个声明:
String sql = "DELETE FROM coupon INNER JOIN company_coupon ON id = company_coupon.coupon_id WHERE company_coupon.company_id = "
sql += companyObject.getId();
< - 方法正在获取一个对象,我可以访问它的id,但我尝试编写一个特定的公司ID,但仍然...
同样的错误会不断变回:
java.sql.SQLSyntaxErrorException:语法错误:遇到“INNER” 第1行,第8栏。
我在这里和其他地方在线搜索,建议在DELETE之后添加一个“别名”。得到了同样的错误,指着那个额外的词:
"DELETE c FROM coupon INNER JOIN company_coupon ON id = company_coupon.coupon_id WHERE company_coupon.company_id = "
---->>
java.sql.SQLSyntaxErrorException:语法错误:遇到“c”at 第1行,第8栏。
任何想法? :(
答案 0 :(得分:0)
您可能需要两个删除语句:
delete from company where id=1;
delete from company_coupon where id_company=1;
如果您的数据库支持外键上的级联删除,则可能只需要一个删除语句。
看看:http://sqlfiddle.com/#!7/86102/6(点击"运行SQL" 并向下滚动到结果的底部,尝试自己更改sql)
答案 1 :(得分:0)
已解决:
function openmodal(modalarray) {
return Alert.alert(
"Alert Title",
"My Alert Msg",
[
modalarray.forEach(element => {
"{text: element, onPress: () => console.log('button press)},";
})
],
{ cancelable: false }
);
}