Infants Posted March 22, 2012 Report Posted March 22, 2012 Labvakar. Sākšu uzreiz: Tātad ir divas tabulas: (stipri noīsināšu visu, bet galvenā doma, cerams, būs saprotama) 1. LIETAS id, name 2. BILDES id, lietas_id, bilde, seciba Katrai lietai bilžu tabulā var būt līdz 5 bildēm, attiecīgi 'seciba' ir iespējama 1, 2, 3, 4, 5. (Var arī nebūt neviena!) Nepieciešams dabūt array (LIETAS.id, LIETAS.name, BILDES.bilde), svarīgākais ir, ka jābūt tai bildei, kuras 'BILDES.seciba' ir 1! Nesaprotu kurā vietā un kādā veidā kverijā ar left join iebāzt to 'WHERE BILDES.seciba = 1'. SELECT LIETAS.*, BILDES.bilde as bilde FROM LIETAS JOIN BILDES ON (LIETAS.id=BILDES.lietas_id). Ja pieraksta WHERE BILDES.seciba=1, rodas problēma ar lietām, kurām nav bilde. P.s. Viss jau ir atrisināts izmantojot citu veidu, bet ir liela interese kā šito atrisināt pareizi ( 1 query )! Quote
marrtins Posted March 22, 2012 Report Posted March 22, 2012 Varbūt šādi? SELECT LIETAS.*, BILDES.bilde as bilde FROM LIETAS LEFT JOIN BILDES ON (LIETAS.id=BILDES.lietas_id) WHERE BILDES.seciba=1 OR BILDES.id IS NULL Quote
Infants Posted March 22, 2012 Author Report Posted March 22, 2012 (edited) Varbūt šādi? SELECT LIETAS.*, BILDES.bilde as bilde FROM LIETAS LEFT JOIN BILDES ON (LIETAS.id=BILDES.lietas_id) WHERE BILDES.seciba=1 OR BILDES.id IS NULL Ok, pareizi. Droši vien mana problēma, ka es tos WHERE AND un OR īsti nemāku lietot. BILDES.seciba=1 nav vienīgais WHERE. Tādā gadījumā pareizi būtu: WHERE BILDES.seciba=1 AND LIETAS.active=1 OR BILDES ..... Nu vo. Nesaprotu. EDIT: WHERE BILDES.seciba=1 AND LIETAS.active=1 OR BILDES.id=NULL AND LIETAS.active=1 ?? Edited March 22, 2012 by Infants Quote
marrtins Posted March 22, 2012 Report Posted March 22, 2012 (BILDES.seciba=1 OR BILDES.id IS NULL) Quote
Infants Posted March 23, 2012 Author Report Posted March 23, 2012 (BILDES.seciba=1 OR BILDES.id IS NULL) Lielumlielais paldies. Tagad esmu par 2 iekavām gudrāks! Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.