Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
Rain01
HV kasutaja

liitunud: 02.09.2005
|
03.04.2008 17:50:08
mysql query |
|
|
Üritan luua mingit otsingut ja sattusin sellise pähkli otsa
Tabel selline
id parent
10 1
12 1
14 1
10 2
15 2
20 2
15 3
30 3
45 3
|
Selline query
SELECT parent FROM table WHERE id IN ( '10', '15') GROUP BY parent |
ehk siis tahaks kätte saada parent kus id = 10 ja 15
mis oleks 2 ainult aga kuna mul see query ilmselt täesti vale siis ta võtab kõik 1, 2 ja 3
kuna
1 on id = 10
2 on id = 10 ja 15
3 on id = 15
või kui näiteks otsiksin id järgi kus 10 ja 12 siis annaks ainult parent 1
|
|
Kommentaarid: 13 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
1 :: |
10 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
03.04.2008 17:54:31
|
|
|
Sul on tabel valesti tehtud, id on unikaalne number ja seda ei saa kuidagi mitu ühesugust olla.
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
Rain01
HV kasutaja

liitunud: 02.09.2005
|
03.04.2008 17:58:56
|
|
|
andrusny kirjutas: |
Sul on tabel valesti tehtud, id on unikaalne number ja seda ei saa kuidagi mitu ühesugust olla. |
ära pane id tähele... ja tegelt see saab alati ühesugune olla kui pole auto_increment pandud
parem ütle kas sa oskad mind aidata?
|
|
Kommentaarid: 13 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
1 :: |
10 |
|
tagasi üles |
|
 |
kapa24
HV vaatleja
liitunud: 23.01.2003
|
03.04.2008 18:06:01
|
|
|
andrusny kirjutas: |
Sul on tabel valesti tehtud, id on unikaalne number ja seda ei saa kuidagi mitu ühesugust olla. |
Kust võtad, et valesti tehtud ja id on unikaalne?
CREATE TABLE kartul (
id INT(11) DEFAULT '10',
nimi VARCHAR(100) PRIMARY_KEY
);
|
Asjast:
Päring ei ole nii lihtne, kuid suund peaks olema midagi sellist:
SELECT t1.parent
FROM
table t1
WHERE
t1.parent IN (SELECT t2.parent FROM table t2 WHERE t1.parent = t2.parent AND t1.id IN (10,15) AND t2.id IN (10,15) AND t1.id != t2.id)
GROUP BY t1.parent
|
EDIT: see pole kah päris see. Täpsusta veel veidi, too mõni näide. Kui parent võib erinev olla kahel elemendil, siis eeltoodud päring ei tööta.
viimati muutis kapa24 03.04.2008 18:17:09, muudetud 1 kord |
|
tagasi üles |
|
 |
AMD
HV veteran

liitunud: 29.07.2003
|
03.04.2008 18:16:27
|
|
|
Äkki midagi sellist...
sql:
|
SELECT t1.parent FROM tabel AS t1 JOIN tabel AS t2 ON (t1.parent = t2.parent) WHERE t1.id = 10 AND t2.id = 15;
|
_________________ From now on, the forum is owned by AMD.That means that you are NO LONGER allowed to talk about, or even mention *ntel. |
|
Kommentaarid: 335 loe/lisa |
Kasutajad arvavad: |
   |
:: |
145 :: |
3 :: |
12 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004

|
03.04.2008 19:47:38
|
|
|
kapa24 kirjutas: |
andrusny kirjutas: |
Sul on tabel valesti tehtud, id on unikaalne number ja seda ei saa kuidagi mitu ühesugust olla. |
Kust võtad, et valesti tehtud ja id on unikaalne?
CREATE TABLE kartul (
id INT(11) DEFAULT '10',
nimi VARCHAR(100) PRIMARY_KEY
);
|
|
kui id pole enam unikaalne, siis pole tegu id vaid millegi muuga juba
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
troglodyte
Kreisi kasutaja

liitunud: 09.08.2002
|
03.04.2008 20:58:05
|
|
|
Kus on öeldud, et id (identifikaator) peab alati just nimelt unikaalne olema?
|
|
Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
34 |
|
tagasi üles |
|
 |
Rain01
HV kasutaja

liitunud: 02.09.2005
|
03.04.2008 22:47:53
|
|
|
mikk36 kirjutas: |
kapa24 kirjutas: |
andrusny kirjutas: |
Sul on tabel valesti tehtud, id on unikaalne number ja seda ei saa kuidagi mitu ühesugust olla. |
Kust võtad, et valesti tehtud ja id on unikaalne?
|
kui id pole enam unikaalne, siis pole tegu id vaid millegi muuga juba |
Sul on võibolla jumala õigus aga keegi polegi küsinud kas ma tegin id õigesti või mis see id on vaid see oli lihtsalt näidisena kus ta polnud unikaalne ja vabandan parandan siis ära selle kuna ta ei ole id
Tänan teisi kes aitasid
AMD oma on päris hea aga kui tahaks veel võibolla kolmanda otsimis parameetri näiteks lisada või veel rohkem siis mu mõistus keerab jälle ära :P
SELECT t1.parent FROM table AS t1 JOIN table AS t2 ON (t1.parent = t2.parent) WHERE t1.id = '15' AND t2.id = '10'
/*---näiteks---
AND t2.id = '20'
*/
GROUP BY t1.parent |
nuh selle otsingu point midagi sellist et kui id 1, id 2, id 3, ... id 88 klapivad parentiga mis on sama kõigil id'del siis näitaks seda
ja kui nüüd täpsem olla siis id all mõtlesin vist gruppe, et parent on siis nagu teisest tabelist item'i id, et siis kui näiteks valib välja lõpuks näiteks selle parent 2 siis saab teisest tabelist võtta id 2 mille nimi oleks näiteks vibu
|
|
Kommentaarid: 13 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
1 :: |
10 |
|
tagasi üles |
|
 |
AMD
HV veteran

liitunud: 29.07.2003
|
04.04.2008 14:15:39
|
|
|
Sedasi siis...
sql:
|
SELECT t1.parent FROM tabel AS t1 JOIN tabel AS t2 JOIN tabel AS t3 ON (t1.parent = t2.parent AND t2.parent = t3.parent) WHERE t1.id = '15' AND t2.id = '10' AND t3.id = '20' GROUP BY t1.parent
|
Aga lihtsam oleks vast nii..
sql:
|
SELECT parent FROM tabel WHERE id IN (55, 15, 30) GROUP BY parent HAVING count(1) = 3;
|
_________________ From now on, the forum is owned by AMD.That means that you are NO LONGER allowed to talk about, or even mention *ntel. |
|
Kommentaarid: 335 loe/lisa |
Kasutajad arvavad: |
   |
:: |
145 :: |
3 :: |
12 |
|
tagasi üles |
|
 |
Rain01
HV kasutaja

liitunud: 02.09.2005
|
04.04.2008 15:39:34
|
|
|
AMD kirjutas: |
Sedasi siis...
sql:
|
SELECT t1.parent FROM tabel AS t1 JOIN tabel AS t2 JOIN tabel AS t3 ON (t1.parent = t2.parent AND t2.parent = t3.parent) WHERE t1.id = '15' AND t2.id = '10' AND t3.id = '20' GROUP BY t1.parent
|
Aga lihtsam oleks vast nii..
sql:
|
SELECT parent FROM tabel WHERE id IN (55, 15, 30) GROUP BY parent HAVING count(1) = 3;
|
|
SUUR SUUR TÄNU! Ma ei tea küll mis see having täpselt teeb aga ta teeb mida vaja :D
AMD tahad positiivest või negatiivset? :D
|
|
Kommentaarid: 13 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
1 :: |
10 |
|
tagasi üles |
|
 |
AMD
HV veteran

liitunud: 29.07.2003
|
04.04.2008 21:27:57
|
|
|
Raha tahan hoopis
_________________ From now on, the forum is owned by AMD.That means that you are NO LONGER allowed to talk about, or even mention *ntel. |
|
Kommentaarid: 335 loe/lisa |
Kasutajad arvavad: |
   |
:: |
145 :: |
3 :: |
12 |
|
tagasi üles |
|
 |
|