Diskuze: jak z INSERTu udělat DELETE
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Skús vymeniť SELECT * za DELETE
napiš to podle vzoru (samozřejmě se svými údaji)
DELETE FROM Tabulka WHERE Podmínka
Žádný JOINy tam nepiš, u DELETE jsou k ničemu, ale ta podmínka je velmi důležitá, jinak si smažeš celou tabulku!!!
dík, ale to jsem zkoušel. nefunguje nic z tohoto:
DELETE FROM visit2 WHERE LEFT JOIN kosik ON visit2.navst=kosik.id_navst WHERE kosik.id_navst IS NULL AND DATEDIFF(NOW(),visit2_stamp)>0
DELETE FROM visit2 WHERE IN (LEFT JOIN kosik ON visit2.navst=kosik.id_navst WHERE kosik.id_navst IS NULL AND DATEDIFF(NOW(),visit2_stamp)>0)
DELETE FROM visit2 IN (SELECT LEFT JOIN kosik ON visit2.navst=kosik.id_navst WHERE kosik.id_navst IS NULL AND DATEDIFF(NOW(),visit2_stamp)>0)
DELETE FROM visit2 LEFT JOIN kosik ON visit2.navst=kosik.id_navst WHERE kosik.id_navst IS NULL AND DATEDIFF(NOW(),visit2_stamp)>0
když to dám bez JOINů:
DELETE FROM visit2 WHERE visit2.navst=kosik.id_navst AND kosik.id_navst IS NULL AND DATEDIFF(NOW(),visit2_stamp)>0
tak to hlásí: #1054 - Unknown column 'kosik.id_navst' in 'where clause'
potřebuji to nějak propojit s tabulkou kosik, aby se mi mazalo ve visit2 co není v kosik
1.
DELETE visit2
FROM
visit2
LEFT JOIN kosik ON visit2.navst = kosik.id_navst
WHERE
kosik.id_navst IS NULL
AND
DATEDIFF(NOW(), visit_stamp) > 0
2.
DELETE FROM visit2
WHERE
navst NOT IN (
SELECT id_navst FROM kosik
)
AND
DATEDIFF(NOW(), visit_stamp) > 0
3.
DELETE FROM visit2
WHERE
NOT EXISTS (
SELECT * FROM kosik WHERE id_navst = visit2.navst
)
AND
DATEDIFF(NOW(),visit_stamp) > 0
Zobrazeno 8 zpráv z 8.