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.