Jump to content
php.lv forumi

Recommended Posts

Posted

sveiki!

sēžu, lauzu galvu, bet kā nesanāk tā nesanāk izdomāt loģisku queriju.

tātad. piemēra pēc... 2 tabulas:

table: A

id, title
1, viens
2, divi
3, triis
4, chetri

table: B
id, a_id, default
1, 1, 0
2, 1, 1
3, 2, 0
4, 2, 1
5, 3, 0
6, 3, 0

 

ideja tāda - jādabūn visi ieraksti no tabulas A un tabulas B, kur tiek joinots uz a.id=b.a_id, BET - jāselekto tikai tie ieraksti B tabulā, kuriem b.default = 1, taču ja nav b.default=1 tad tiek atgriezts 0 vai dajebkas (galvenais lai tiek selektoti visi ieraksti no A).

 

nepieciešamais gala rezultāts:

a.id, b.a_id, b.id
1,1,2
2,2,4
3,3,null
4,null,null

 

ceru, ka saprotami izskaidroju. ar joiniem man sanāca līdz tam brīdim, kad vajadzēja atgriezt defaultos no B vai arī kad B tabulā a.id netika vispār iekļauts...

 

jau iepriekš paldies.

Posted (edited)

select A.id,A.title,B.id as bid,B.a_id,B.default from A,B where A.id=B.a_id and B.default='1'

 

šitā vajadzētu strādāt

Edited by [Ya]
Posted

nope neiet.

ja pie where norāda ka b.default jābūt 1, tad uzreiz atkrīt visi tie ieraksti no tabulas A, kuri nav reģistrēti tabulā B..

Posted (edited)

select A.id,A.title,B.id as bid,B.a_id,B.default from B LEFT JOIN A on(B.a_id=A.id) where B.default=1

 

un šitā ar nešancē ?

Edited by [Ya]
Posted

[Ya]: ar where beigas neselektes visus no tables A, laikam.

 

man liekas ka: select A.id,A.title,B.id as bid,B.a_id,B.default from B LEFT JOIN A on(B.a_id=A.id and B.default=1)

 

bet varu kludities, neiedzilinajos un neparbaudiju.

Posted

es ar neparbaudiju, nav riktīgi laika pārbaudīt, kā nekā jāstrādā un naudiņš jāpelna, būtu vairāk laika varētu arī pārbaudīt :)

  • 9 months later...
Posted
[Ya]: ar where beigas neselektes visus no tables A, laikam.

 

man liekas ka: select A.id,A.title,B.id as bid,B.a_id,B.default from B LEFT JOIN A on(B.a_id=A.id and B.default=1)

 

bet varu kludities, neiedzilinajos un neparbaudiju.

 

V3rb0 - Tu esi glābējs :) on(B.a_id=A.id and B.default=1) iespēju kautkā biju manuālī palaidis garām un nomocījos gandrīz visu dienu :)

Paldies!

Posted
DarkSide, paldies! un prieks ka ir arī tādi, kas lieto meklēšanu.
:) Žēl, ka te forumā nav tā kā dažās citās vietās, kad var dot punktus par labu atbildi uz jautājumu... :)
×
×
  • Create New...