MySQL删除选择行
我试图从表订阅中删除一行,其中有两个外键(id\u user和id\u journal)。我得到的信息是来自table user的电子邮件和来自table journal的nome。删除的行需要与user.email和journal.nome匹配。我找不到解决办法。我怎么做 表用户:MySQL删除选择行,mysql,delete-row,Mysql,Delete Row,我试图从表订阅中删除一行,其中有两个外键(id\u user和id\u journal)。我得到的信息是来自table user的电子邮件和来自table journal的nome。删除的行需要与user.email和journal.nome匹配。我找不到解决办法。我怎么做 表用户: id name email password 表日记帐: id name 表格订阅: id id_user id_journal 我尝试的最后两个查询: DELETE FROM assinatura WHER
id
name
email
password
表日记帐:
id
name
表格订阅:
id
id_user
id_journal
我尝试的最后两个查询:
DELETE FROM assinatura WHERE (
SELECT tbluser.id, journal.id
FROM tbluser, journal
WHERE email = '$email' AND nome = '$nome')
DELETE FROM assinatura
INNER JOIN tbluser on (tbluser.email = '$email')
INNER JOIN journal on (journal.nome = '$nome')
我试过很多其他的问题,但都没有成功。我认为说我是MySQL的新手很重要。关于另一个话题
DELETE
FROM Subscription
WHERE id_user IN (
SELECT usr.id
FROM user AS usr
WHERE usr.email = INPUT_EMAIL
)
AND id_journal IN (
SELECT jrnl.id
FROM journal AS jrnl
WHERE jrnl.name = INPUT_NAME
)
尝试通过以下方式避免对同一用户/日志组合的超额订阅:
CREATE TABLE subscription
(
id int NOT NULL AUTO_INCREMENT primary key,
id_user int not null,
id_journal int not null,
UNIQUE KEY `user_journal_intersect` (`id_user`,`id_journal`)
-- note Alan stated FK RI in place already
);
当然,你可以在复合材料上PK(放弃
id
列),程序员pref你尝试的查询是什么?谢谢你的回复。我已经编辑了这个问题。如果我解释得不好,请告诉我。不要认为这会有帮助,id值不相关。用户名可能不是“人物杂志”,谢谢你的回复。但是关于use.name=jrnl.name?是这样吗?我试试看,没关系。我使用的是一个测试数据库,在没有相关子查询的情况下,您可以做得更简单,因为我已经在Java中控制了用户/日志订阅。不管怎样,我不明白你的意思。你们能给我解释一下吗?哦,你们对订阅表的理解就是你们在编程中所说的交集表。你可以随意调用索引名,也可以什么都不调用,它会给它起一个名字。另一件事是,DB会强制执行并保护uA progr,可以说他在java中控制FK。但在你的情况下,你是委托DB来保护你。同样的概念,我将阅读更多关于相交的内容。非常感谢。在你的帮助下,我的回答起了作用。非常感谢你。我已经花了好几个小时试过了。