sql >> Databáze >  >> RDS >> Mysql

Porovnání dvou polí s různými názvy klíčů

Přidělte jednomu nebo oběma polím alias, aby se klíčově shodovala:

$sql1 = "SELECT modname AS module FROM users_modules WHERE email='$email'";

Nyní je zde klíč module spíše než modname .

Můžete použít array_diff najít rozdíl mezi poli, pokud mají podobnou strukturu. Ve vašem případě by to znamenalo odstranění dalších dvou klíčů z vašeho druhého dotazu DB.

Například:

$sql1 = "SELECT modname AS module FROM users_modules WHERE email='$email'";
$result1 = $conn->query($sql1);
while ($row = $result1->fetch_assoc()){
   $indMods[] = $row;
}

$sql2 = "SELECT module FROM modules WHERE level = '$level'";
$result2 = $conn->query($sql2);
while ($row2 = $result2 -> fetch_assoc()){
   $allMods[] = $row2;
}

$difference = array_diff($indMods, $allMods);

Dokumentace pro array_diff PHP :http://php.net/manual/en/function.array- diff.php

Všimněte si, že existuje mnoho způsobů, jak to udělat. Toto je jen jeden.



  1. Nelze přejít na řádek 0 na indexu výsledků MySQL 13

  2. Jak použít trigger v MySql k vytvoření cizího klíče

  3. CHYBA PostgreSQL:poddotaz ve FROM nemůže odkazovat na jiné vztahy stejné úrovně dotazu

  4. MySQL PDO, jak svázat parametry pro IN()