aika Posted April 26, 2010 Report Share Posted April 26, 2010 Dota tabula A ar diviem laukiem: AA un AB AA AB 1 1 1 2 2 3 1 4 1 5 un tabula B ar diviem laukiem BA un BB BA BB 2 1 1 4 1 6 vajag izveidot pieprasījumu, kas reģistrē gadījumu (rindu skaits >0), kad mainīgais C sakrīt ar AA, ja vien attiecīgais AB nav pārī ar mainīgo D tabulā B piemēram: ir jānoreaģē ja C ir 2 un D ir jebkas (3 nav neviena pāra tabulā B) ir jānoreaģē ja C ir 1 un D ir 5 (5 nav neviena pāra tabulā B) nav jānoreaģē ja C ir 1 un D ir 1 (1 ir pārī ar 2) nav jānoreaģē ja C ir 1 un D ir 6 (6 ir pārī ar 1) ceru ka domu sapratāt, izskatās ka jālieto WHERE no SELECTa, bet man tiešām pieredze pa īsu. Paldies jau iepriekš. Quote Link to comment Share on other sites More sharing options...
aika Posted April 26, 2010 Author Report Share Posted April 26, 2010 un vai šāds pieprasījums ir saprātīgs, ja tabulā A ir 500K ierakstu? Quote Link to comment Share on other sites More sharing options...
php newbie Posted April 27, 2010 Report Share Posted April 27, 2010 Dota tabula A ar diviem laukiem: AA un AB AA AB 1 1 1 2 2 3 1 4 1 5 un tabula B ar diviem laukiem BA un BB BA BB 2 1 1 4 1 6 vajag izveidot pieprasījumu, kas reģistrē gadījumu (rindu skaits >0), kad mainīgais C sakrīt ar AA, ja vien attiecīgais AB nav pārī ar mainīgo D tabulā B piemēram: ir jānoreaģē ja C ir 2 un D ir jebkas (3 nav neviena pāra tabulā B) ir jānoreaģē ja C ir 1 un D ir 5 (5 nav neviena pāra tabulā B) nav jānoreaģē ja C ir 1 un D ir 1 (1 ir pārī ar 2) nav jānoreaģē ja C ir 1 un D ir 6 (6 ir pārī ar 1) ceru ka domu sapratāt, izskatās ka jālieto WHERE no SELECTa, bet man tiešām pieredze pa īsu. Paldies jau iepriekš. izskatās pēc kļūdas piemērā un ja vien attiecīgais AB nav pārī ar mainīgo D tabulā B tas ir B.BA = A.AB un B.BB = D vai nu B.BA = A.AB un B.BB = D vai B.BA = D un B.BB = B.BA Quote Link to comment Share on other sites More sharing options...
aika Posted April 27, 2010 Author Report Share Posted April 27, 2010 nav vis klūdas. Ja C=1 , tad AB vērtības ir 1;2;4;5 savukārt ja D=1, tad tā pāris ir 2, tātad sakrīt ar vienu no AB vērtībām. Respektīvi - pāris ir pāris, strādā abos virzienos! Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted April 27, 2010 Report Share Posted April 27, 2010 Man galvā domājot sanāca šādi: SELECT count(A1.AA) FROM A AS A1 WHERE A1.AA=C AND A1.AB NOT IN (SELECT BA FROM B AS B1 WHERE B1.BB = C) AND A1.AB NOT IN (SELECT BB FROM B AS B2 WHERE B2.BA = C) Quote Link to comment Share on other sites More sharing options...
Gints Plivna Posted April 27, 2010 Report Share Posted April 27, 2010 (edited) Jautājumi: 1) DB? 2) create table skripti? 3) insert skripti dotajiem datiem? 4) kas notiek tad, ja tabulā A ir 1, 2, tabulā B ir 2, 3 un C = 1 un D = 2? T.i., vai tabulā B ir jāskatās tikai uz otru pāra elementu, vai arī der tas pārīša elements uz kuru esmu aizbraucis pa taisno? Par pirmajiem trīs maniem jautājumiem skat te http://datubazes.wordpress.com/2008/05/27/ka-uzdot-jautajumu/'>http://datubazes.wordpress.com/2008/05/27/ka-uzdot-jautajumu/ sadaļā par specifiku datubāzēm. Gints Plivna http://datubazes.wordpress.com oops 1) atkrīt izrādās topika nosaukumā/tēmā/vai kā nu to sauc bija :) Edited April 27, 2010 by Gints Plivna Quote Link to comment Share on other sites More sharing options...
php newbie Posted April 27, 2010 Report Share Posted April 27, 2010 (edited) teorētiski es rakstītu kko tādu, bet nu labāk gaidi guru variantu :) SELECT * FROM A WHERE A.AA = C AND A.AB NOT IN (SELECT BA FROM B WHERE B.BB = D UNION SELECT BB FROM B WHERE B.BA = D) edit: oops kamēr rakstiju jau vairāki varianti no guru ir :D Edited April 27, 2010 by php newbie Quote Link to comment Share on other sites More sharing options...
aika Posted April 27, 2010 Author Report Share Posted April 27, 2010 Paldies. Par 'not in' sintaksi kkā neiedomājos - uzreiz izskatās vienkāršāk. dodos pārbaudīt. Quote Link to comment Share on other sites More sharing options...
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.