Jump to content
php.lv forumi

Mysql joini


Infants

Recommended Posts

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 )!

Link to comment
Share on other sites

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 by Infants
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...