我有三个表:utenti,giocate和giocatori。

我必须删除giocatori和giocate表中具有特定ID的行。

我以这种方式获取ID:

SELECT
    @ids:=giocate.id
  FROM
    giocate
  JOIN
    utenti ON utenti.id = giocate.id_account
  WHERE
    utenti.id = 642 AND DATE_FORMAT(giocate.time,
    '%Y-%m-%d') = '2016-03-20';


这有效,实际上是

SELECT @ids;


给我吗

ids
-------
1225
4545
5454
6653
...


但是当我调用此查询时:

DELETE giocate.*, giocatori.*
FROM
  giocatori
INNER JOIN
  giocate
WHERE
  giocate.id_giocatore = giocatori.id AND giocate.id IN (@ids)


我在每个表中只删除了一行...
因此,我必须对“ count(@ids)”重复该查询...
为什么这个?

最佳答案

来您不需要变量。这可能就足够了:

DELETE ge, gi
FROM giocatori gi INNER JOIN
     giocate ge
     ON gi.id_giocatore = ge.id
WHERE ge.id_account = 642
       date(ge.time) = '2016-03-20';


这似乎抓住了您逻辑的意图。但是,如果您的数据结构有可能,可能会丢失其他日期的giocate记录。

关于jquery - MySQL删除局部变量的行部分工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36189340/

10-11 01:25