Mysql删除局部var部分工作的行

时间:2016-03-23 21:48:59

标签: jquery mysql sql sql-delete

我有三张桌子:utenti,giocate和giocatori。

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

我以这种方式得到了ids:

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)" ... 为什么这样?

1 个答案:

答案 0 :(得分:2)

Arrg。你不需要变量。这可能就足够了:

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条记录。