ich versuche grad einen LEFT JOIN auszuführen und die Ergebnisse dann zu löschen
Das SQL - Statement das mir "Leichen" in der Tabelle findet lautet:
SELECT * FROM entry LEFT JOIN entry_solution ON (entry.id = entry_solution.entryId ) WHERE entryId IS NULL
Meine relations()
'lentry' => array(self::MANY_MANY, 'solution', 'entry_solution(entryId, solutionId)', 'joinType' => 'LEFT JOIN', ),
Meine "Problem" - Methode(n)
1. Kandidat - führt nicht gewünschtest Ergebnis, weil ich die Bedingung IS NULL nicht hinzugefügt habe
public function deleteEntry()
{
$x = Entry::model()->with('lentry')->findAll( );
echo "<pre>";
print_r($x);
echo "</pre>";
}
2. Kandidat - Führt keine LEFT JOIN aus + meckert über nicht bekannten Spaltennamen entryId
SELECT COUNT(*) FROM `entry_solutions` WHERE entryId=2
public function deleteEntry()
{
$oCriteria = new CDbCriteria();
$oCriteria->condition = "entryId IS NULL";
$x = Entry::model()->with('lentry')->findAll( );
echo "<pre>";
print_r($x);
echo "</pre>";
}
3. Kandidat - FATAL ERROR (Löschen alle Einträge vom LEFT JOIN
Fatal error: Call to a member function deleteAll() on a non-object in E:\Workspace\blog2\protected\models\entry.php on line 133
public function deleteEntry()
{
$x = Entry::model()->with('lentry')->findAll( );
$x->deleteAll;
}
4. Kandidat - meckert über Methode deleteAll
CActiveFinder hat keine Methode namens "deleteAll".
$x = Entry::model()->with('lentry')->deleteAll();5.6 Kandidat wären deleteAll + condition, aber da 3 und 4 nicht funktionieren, habe ich die nun außer Acht gelassen.
Wer kennt den Trick?
thx!!

Help













