Как да изтрия mysql записи от 2 таблици, но ако няма записи във 2-ра таблица, пак да изтрия от 1-ва таблица?

Това работи, когато дадено задание има файлове. Той изтрива файловите записи от таблицата с файлове и записите за задания от таблицата със задания, но ако заданието няма файлове, нищо не се случва. Искам все още да изтрива записа на заданието от таблицата със задания, ако заданието няма файлове, свързани с него.

DELETE jobs, files FROM jobs INNER JOIN files WHERE jobs.id = $id AND files.jobid = jobs.id

Опитах следното, но не се получи:

DELETE jobs, files FROM jobs INNER JOIN files WHERE jobs.id = $id OR files.jobid = jobs.id

Опитах и ​​това, но не се получи:

DELETE jobs, files FROM jobs INNER JOIN files on jobs.id = files.jobid WHERE jobs.id = $id

РЕДАКТИРАНЕ:

ето какво проработи. базира се на отговора, маркиран като правилен по-долу, но малко по-различен.

DELETE jobs, files FROM jobs LEFT JOIN files ON files.jobid = jobs.id WHERE jobs.id = $id

не хареса този кратък код или каквото и да е това (когато хората казват файлове f или работни места j, тогава по-късно казват f.jobid или j.id). и може да не е харесал звездичките/звездичките при първото деклариране на таблиците (не съм сигурен).


person leoarce    schedule 11.02.2014    source източник


Отговори (1)


Просто използването на LEFT JOIN ще реши проблема ви:

DELETE j.*, f.*
FROM jobs j
LEFT JOIN files f
    ON f.jobid = j.id
WHERE j.id = $id
person hjpotter92    schedule 11.02.2014
comment

Това решава ли проблема ви?

$(":input").not(":empty")

- person hjpotter92; 12.02.2014