Adatok lehívásának variációi
Szerző
Üzenet
Ennek a három lehívásnak ugyan az a végeredménye, de mi a különbség ?
Adminok kimerítő választ kérek
Adminok kimerítő választ kérek
Kód:
$sql = 'SELECT DISTINCT u.user_id, u.username, u.username_clean
FROM '. ARCADE_SCORES_TABLE .' s,'. USERS_TABLE .' u
WHERE s.user_id = u.user_id
ORDER BY u.username_clean ASC';
$result = $db->sql_query($sql);
$row = $db->sql_fetchrowset($result);
$db->sql_freeresult($result);
Kód:
$sql = 'SELECT DISTINCT u.user_id, u.username, u.username_clean
FROM '. ARCADE_SCORES_TABLE .' s
LEFT JOIN '. USERS_TABLE .' u
ON s.user_id = u.user_id
ORDER BY u.username_clean ASC';
$result = $db->sql_query($sql);
$row = $db->sql_fetchrowset($result);
$db->sql_freeresult($result);
Kód:
$sql_array = array(
'SELECT' => 'u.user_id, u.username, u.username_clean',
'FROM' => array(
ARCADE_SCORES_TABLE => 's',
),
'LEFT_JOIN' => array(
array(
'FROM' => array(USERS_TABLE => 'u'),
'ON' => 's.user_id = u.user_id'
)
),
'ORDER_BY' => 'u.username_clean ASC',
);
$sql = $db->sql_build_query('SELECT_DISTINCT', $sql_array);
$result = $db->sql_query($sql);
$row = $db->sql_fetchrowset($result);
$db->sql_freeresult($result);
A második és a harmadik pontosan ugyanaz, csak az egyik a DBAL
Az első annyiban különbözik a többitől, hogy az az arcade táblából csak azokat a sorokat adja vissza, amihez szigorúan tartozik a user táblában is bejegyzés. Mivel elvileg minden rögzített felhasználói azonosítóhoz tartozik egy bejegyzés a felhasználók táblában, ezért gyakorlati különbség nincs a két lekérés között, legfeljebb annyi, hogy a
_________________
Üdv.: fberci
Kereső | Szabályzat | phpBB3 telepítés/frissítés/konvertálás | Útmutatók | Olympus - phpBB3 | Kérlek, ne küldj privát üzenetet nem személyes dologgal kapcsolatban!
sql_build_query()
függvényét használja, a másik meg nem.
Az első annyiban különbözik a többitől, hogy az az arcade táblából csak azokat a sorokat adja vissza, amihez szigorúan tartozik a user táblában is bejegyzés. Mivel elvileg minden rögzített felhasználói azonosítóhoz tartozik egy bejegyzés a felhasználók táblában, ezért gyakorlati különbség nincs a két lekérés között, legfeljebb annyi, hogy a
LEFT JOIN
-t egy kicsivel gyorsabbnak tartják (én pl. mindig azt szoktam használni). Ha lenne pl. egy törölt felhasználó, akinek az azonosítója nem lett megváltoztatva a vendég felhasználóéra az arcade táblában, akkor a második és harmadik lekérés egy sora NULL
-t adna vissza.
_________________
Üdv.: fberci
Kereső | Szabályzat | phpBB3 telepítés/frissítés/konvertálás | Útmutatók | Olympus - phpBB3 | Kérlek, ne küldj privát üzenetet nem személyes dologgal kapcsolatban!
Nem készíthetsz új témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem módosíthatod a hozzászólásaidat a fórumban.
Nem törölheted a hozzászólásaidat a fórumban.
Nem szavazhatsz ebben fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem módosíthatod a hozzászólásaidat a fórumban.
Nem törölheted a hozzászólásaidat a fórumban.
Nem szavazhatsz ebben fórumban.