Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL删除选择行_Mysql_Delete Row - Fatal编程技术网

MySQL删除选择行

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\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 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来保护你。同样的概念,我将阅读更多关于相交的内容。非常感谢。在你的帮助下,我的回答起了作用。非常感谢你。我已经花了好几个小时试过了。