TCH (statz) | #1, Főfasz (10466) |
4065 | #1c65 | ^ | Idézet | Mon, 07 May 2012 17:46:28 +02 |
46.107.*.* | *.catv.pool.telekom.hu |
Na ja, de gondolom a Pg-nél nem ültek a babérjaikon. Tökmind1 miben kódolsz rá, fosnet marad. :P Ez nem igaz. Én nem ódzkodok semmitől sem ami szükséges. Ami felesleges, attól ódzkodok. Szal, aszondod jobb, ha a lang_id a WHERE paramok között van? Akkor is, ha mondjuk több táblát csatolok össze? Ilyesmire gondolok: SELECT product.price, product_lang.name, product_lang.description, product_categoriy_lang.name, product_image.filename FROM products LEFT JOIN product_lang ON (product.id = product_lang.product_id) LEFT JOIN product_category_lang ON (product.product_category_id = product_category_lang.product_category_id) LEFT JOIN product_image ON (product.id = product_image.product_id) WHERE product_lang.lang_id = '1' AND product_category_lang.lang_id = '1' AND product_image.primary = '1';Itt a "lang" táblákban van lang_id, az "image" táblában nincs. Nekem itt valahogy nem stimmel ez a lang_id a WHERE paraméterben dolog, nem kéne a más más mezőkkel bíró kapcsolásoknak az ON klauzában lennie? Nem így kéne ennek kinéznie? SELECT product.price, product_lang.name, product_lang.description, product_categoriy_lang.name, product_image.filename FROM products LEFT JOIN product_lang ON (product.id = product_lang.product_id AND product_lang.lang_id = '1') LEFT JOIN product_category_lang ON (product.product_category_id = product_category_lang.product_category_id AND product_category_lang.lang_id = '1') LEFT JOIN product_image ON (product.id = product_image.product_id AND product_image.primary = '1');Csak kérdés, mondjad, ha kurwára nem. Sz*rk: Kibencsmárkoltam, saxus verziója lassabb: 5000 darab változó limitjű lekérés egy 10000 termékes nyolc nyelvű db-n 121.883 : 118.345 az only joinos javára. Sz*rk 2: Ja és saxus megint nem a lényeget fogta meg, mert most nem egy JOIN optimális használata volt a kérdés, hanem az, hogy CLOB típusú mezőt nem lehet JOIN-olni! Nem azzal akarunk csatolni, azt akarjuk csatolni, de nem lehet! Bullshit, ez utóljára a MySQL 4-ben volt igaz, MySQL 5-ben - azaz usque 2005 óta - a varchar 65535 byte (és nem karakter!) lehet maximum. Csak ha 255 byte-nál hosszabb a mező, akkor nem 1, hanem 2 byte-on tárolja le a mező hosszát. És ugyanez vonatkozik a char-ra és a text típusokra is, csak ott már a típusban benne van, hogy max milyen hosszú lehet és mennyin tárolja a hosszát. (Tiny 255 / 1, Sima text 65535 / 2, Medium 16777215 / 3, Long 4294967295 / 4) Mikor láttál te utóljára MySQL-t? 2004-ben? És még én vagyok elmaradva. :P És egyébként már megint nem a lényeget ragadtad meg. Nem az volt a bajom, hogy szarákülben a varchar2 max 4000 lehet, hanem, hogy a CLOB-ba sem lehet egyszerre többet belerakni, azaz muszáj darabolni a sztringet! Akkor mi kúrtuk el. Van ez így. A kugli nem segített túl sokat. :P Jahogy. Mondjuk keminek igaza van abban, hogy szétbarmolták a Sun-t, csak én nem ezért rágtam be a szarákülre. |