Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: Dėl duomenų ištraukimo

Parašė Creatium· 2010 Rugp. 26 14:08:43
#1

Sveiki. Taigi redaguoju aš vieną naujienų sistemą ir man jau ne pirmą kartą iškilo toks klausimas. Yra kodas:

$Try_Page = mysql_query('SELECT
               id, title, category, description_meta, keywords_meta, position
            FROM '._PRE.'articles'.' AS a
            WHERE seftitle = "'.$categorySEF.'"
               '.$pub_a.'
               AND position = 3');




arba

$Try_Article = mysql_query('SELECT
            a.id AS id, title, position, description_meta, keywords_meta,
            c.id as catID, name, description, subcat
         FROM '._PRE.'articles'.' AS a
         LEFT JOIN '._PRE.'categories'.' AS c
            ON category =  c.id
         WHERE c.seftitle = "'.$categorySEF.'"
            AND a.seftitle ="'.$subcatSEF.'"
            '.$pub_a.$pub_c.'
            AND subcat = 0
      ');





Gal galit man paaiškinti paryškintas vietas? Ką atlieka tos vietos ir kam jos skirtos.

Redagavo Creatium· 2010 Rugp. 26 14:08:00

Parašė ozzWANTED· 2010 Rugp. 26 14:08:56
#2

AS yra alternatyvus pavadinimas. Ir jis ne tik SQL bet ir Php, Python ir t.t.

SQL'e kai daroma AS lentelei, tai tarsi lentelės trumpesnis pavadinimas.
Tačiau gali būtų pvz. SUM(X) AS suma, kai pvz. sumuojami laukeliai ir grąžinama tokiu laukeliu.

Parašė Creatium· 2010 Rugp. 26 14:08:22
#3

Ai, tai jeigu tarkim pirmam variante yra AS a, tai vėliau traukiant a.id man automatiškai trauks iš articles lentelės? Ar aš ne taip supratau?

Parašė ozzWANTED· 2010 Rugp. 26 15:08:37
#4

Iš tikrųjų kiekvienas laukelis yra iš 3 lygių pavadinimo:
DATABASE_NAME.TABLE_NAME.FIELD_NAME

Jeigu nėra pirmos, arba antros dalies, tai jie parenkami by default. Bet jeigu imama iš kelių DB ar kelių lentelių ir lentelės vardas arba stulpelio vardas dubliuojasi, gautųsi kolizija. Todėl DB pavadinimas turi būti unikalus, o lentelės gali būti skirtingose DB tuo pačiu pavadinimu, nes prieš jas eina prefix'as - duom. bazės pavadinimas.