abonnement Unibet Coolblue
  dinsdag 3 april 2012 @ 10:07:26 #151
84244 Scorpie
Abject en infaam!
pi_109839661
Volgens mij is je gebundelde query niet hetzelfde als je drie verschillende queries.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
pi_109839811
quote:
0s.gif Op dinsdag 3 april 2012 10:07 schreef Scorpie het volgende:
Volgens mij is je gebundelde query niet hetzelfde als je drie verschillende queries.
Ja zoiets vermoed ik ook al. Hij gaat, denk ik, een relatie zoeken waarmee de where clause overeenstemt. Dus hij zoekt ook in de lege tabel een record met ID='2', die dus niet bestaat en dus oneindig lang gaat zoeken?

Is er dan een manier zodat hij dat niet doet? Of is er een andere manier om de resultaten van mijn query simpel te mergen? (Zoals gezegd een union gaat helaas niet).
  dinsdag 3 april 2012 @ 10:13:57 #153
267443 Cue_
Cuecumbergirl
pi_109839824
Moet je niet een OR gebruiken ipv een AND?
  dinsdag 3 april 2012 @ 10:16:24 #154
299167 stefanhaan
Bloeddorstige wasbeer
pi_109839892
quote:
0s.gif Op dinsdag 3 april 2012 10:07 schreef Scorpie het volgende:
Volgens mij is je gebundelde query niet hetzelfde als je drie verschillende queries.
Dit.
Allereerst je tabel namen in een enkele query is nergens voor nodig. Dus maak het je niet onnodig lastig dat je alle velden vanuit je query via t.** moet benaderen maar gewoon **.

De TOP tag werkt alleen in SQL server (Dacht ik) dus kan je beter LIMIT gebruiken doet exact hetzelfde en is vrijwel overal ondersteunt.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
SELECT TOP 1
    t.IETS1,
    t.IETS2
FROM
    TABEL1 AS t
WHERE 
    t.ID='2'

SELECT TOP 1
    q.IETS3
FROM
    TABEL2 AS q
WHERE
    q.ID='2'

SELECT TOP 1
    s.IETS4
    s.IETS5
    s.IETS6
FROM
    TABEL3 AS s
WHERE
    s.ID='2'

=>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
SELECT 
    veld1
   veld2
FROM
    tabel1
WHERE 
   id='2'
LIMIT 1

UNION

SELECT 
    veld3
FROM
    tabel2
WHERE
    id='2'
LIMIT 1

UNION

SELECT
    veld4
    veld5
    veld6
FROM
   tabel3
WHERE
    id='2'
LIMIT 1

Alleen hou deze restricties in je achterhoofd:
quote:
* The number of columns in each SELECT statement has to be the same .
* The data type of the column in the column list of the SELECT statement must be the same or at least convertible.
It was an opportunity to honour our memories and to make room for new ones
pi_109840058
quote:
10s.gif Op dinsdag 3 april 2012 10:16 schreef stefanhaan het volgende:

[..]

Dit.
Allereerst je tabel namen in een enkele query is nergens voor nodig. Dus maak het je niet onnodig lastig dat je alle velden vanuit je query via t.** moet benaderen maar gewoon **.

De TOP tag werkt alleen in SQL server (Dacht ik) dus kan je beter LIMIT gebruiken doet exact hetzelfde en is vrijwel overal ondersteunt.
[ code verwijderd ]

=>
[ code verwijderd ]

Alleen hou deze restricties in je achterhoofd:

[..]

I know ;) maar het was even handig nu met copy-paste :P en LIMIT wordt in mijn geval, MS SQL server, niet ondersteund. Maar evengoed datgene wat je post heb ik dus geprobeerd en werkt niet omdat het aantal kolommen niet gelijk is.

quote:
0s.gif Op dinsdag 3 april 2012 10:13 schreef Cue_ het volgende:
Moet je niet een OR gebruiken ipv een AND?
Gedaan, had geen effect, hoewel ik wel idd dacht dat dit zou werken.
  dinsdag 3 april 2012 @ 10:24:24 #156
299167 stefanhaan
Bloeddorstige wasbeer
pi_109840085
Daarom poste ik ook dit.
quote:
* The number of columns in each SELECT statement has to be the same .
* The data type of the column in the column list of the SELECT statement must be the same or at least convertible.
Dan zou je net zo goed de 3 query's afzonderlijk kunnen doen of via een JOIN. Maar ik weet niet waarvoor je het wil gebruiken dus wat meer info misschien? :9
It was an opportunity to honour our memories and to make room for new ones
pi_109840321
quote:
10s.gif Op dinsdag 3 april 2012 10:24 schreef stefanhaan het volgende:
Daarom poste ik ook dit.

[..]

Dan zou je net zo goed de 3 query's afzonderlijk kunnen doen of via een JOIN. Maar ik weet niet waarvoor je het wil gebruiken dus wat meer info misschien? :9
Klopt de drie queries kan ik ook afzonderlijk doen. Alleen wil ik het netwerkverkeer minimaliseren. Wat ik nu eerst dus wil doen is gewoon de resultaten van de 3 queries combineren, achter elkaar zetten dus. Zodat ik het resultaat daarna in 1 brok wordt verstuurd i.p.v. 3 brokken. Daarna gooi ik de boel nog in een storedprocedure.

Ik had net ook nog geprobeerd met een FULL OUTER JOIN maar daarbij zelfde resultaat.
  dinsdag 3 april 2012 @ 10:36:17 #158
299167 stefanhaan
Bloeddorstige wasbeer
pi_109840394
quote:
7s.gif Op dinsdag 3 april 2012 10:33 schreef Dale. het volgende:

[..]

Klopt de drie queries kan ik ook afzonderlijk doen. Alleen wil ik het netwerkverkeer minimaliseren. Wat ik nu eerst dus wil doen is gewoon de resultaten van de 3 queries combineren, achter elkaar zetten dus. Zodat ik het resultaat daarna in 1 brok wordt verstuurd i.p.v. 3 brokken. Daarna gooi ik de boel nog in een storedprocedure.

Ik had net ook nog geprobeerd met een FULL OUTER JOIN maar daarbij zelfde resultaat.
Sowieso als je alleen de top 5 resultaten terug laat sturen. Vind er vrijwel geen netwerkverkeer plaats omdat je maar 15 rows retourneerd ipv 15000 bv. Dus is het in dit geval wel verwaarloosbaar.
It was an opportunity to honour our memories and to make room for new ones
pi_109840463
quote:
10s.gif Op dinsdag 3 april 2012 10:36 schreef stefanhaan het volgende:

[..]

Sowieso als je alleen de top 5 resultaten terug laat sturen. Vind er vrijwel geen netwerkverkeer plaats omdat je maar 15 rows retourneerd ipv 15000 bv. Dus is het in dit geval wel verwaarloosbaar.
True maar niet als er grofweg 10.000 pc's dit iedere 5 seconde gaan doen :P
  dinsdag 3 april 2012 @ 10:41:10 #160
299167 stefanhaan
Bloeddorstige wasbeer
pi_109840560
quote:
7s.gif Op dinsdag 3 april 2012 10:38 schreef Dale. het volgende:

[..]

True maar niet als er grofweg 10.000 pc's dit iedere 5 seconde gaan doen :P
Zelfs dan valt het nog mee mits goede server.
It was an opportunity to honour our memories and to make room for new ones
pi_109840651
quote:
10s.gif Op dinsdag 3 april 2012 10:41 schreef stefanhaan het volgende:

[..]

Zelfs dan valt het nog mee mits goede server.
Die is er niet maar goed :') krijg ik nog een antwoord :P of blijft dit een ja-dit-ja-zus gesprek hahaha want ik wil de resultaten toch combineren.
  dinsdag 3 april 2012 @ 10:45:07 #162
75592 GlowMouse
l'état, c'est moi
pi_109840717
UNION was toch al genoemd?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_109840756
quote:
0s.gif Op dinsdag 3 april 2012 10:45 schreef GlowMouse het volgende:
UNION was toch al genoemd?
quote:
en werkt niet omdat het aantal kolommen niet gelijk is.
  dinsdag 3 april 2012 @ 10:50:30 #164
75592 GlowMouse
l'état, c'est moi
pi_109840915
Andere oplossingen worden echt lelijk :')

hoofdletters als tabel-/kolomnamen zijn echt lelijk :')

SELECT t.IETS1,t.IETS2,q.IETS3,q.IETS4
FROM TABEL1 AS t
LEFT JOIN TABEL 2 AS q ON(q.ID=2)
WHERE t.ID=2
LIMIT 1
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 3 april 2012 @ 10:54:08 #165
75592 GlowMouse
l'état, c'est moi
pi_109841055
Het is mooier om, als je maar één kolom hebt en bij een andere twee kolommen, toch UNION te gebruiken en dan ipv select veld1 te doen: select veld1,0
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_109841912
quote:
0s.gif Op dinsdag 3 april 2012 10:50 schreef GlowMouse het volgende:
Andere oplossingen worden echt lelijk :')

hoofdletters als tabel-/kolomnamen zijn echt lelijk :')

SELECT t.IETS1,t.IETS2,q.IETS3,q.IETS4
FROM TABEL1 AS t
LEFT JOIN TABEL 2 AS q ON(q.ID=2)
WHERE t.ID=2
LIMIT 1
Okee! En ja sorry ik heb het database schema niet gemaakt :') maar ander vraagje... Ik hou het dus gewoon bij 3 queries... Maar kan ik dan de resultaten in sql makkelijk mergen?

Ik heb dan dus zoiets als

@SET result1 = SELECT ...
@SET result2 = SELECT ...
@SET result3 = SELECT ...

Waarbij result1,2 en 3 dus iets zijn als
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-----------
| a1 | a2 |
-----------

----------------
| b1 | b2 | b3 |
----------------

------
| c1 |
------

Wordt

-------------------------------
| a1 | a2 | b1 | b2 | b3 | c1 |
-------------------------------

quote:
0s.gif Op dinsdag 3 april 2012 10:54 schreef GlowMouse het volgende:
Het is mooier om, als je maar één kolom hebt en bij een andere twee kolommen, toch UNION te gebruiken en dan ipv select veld1 te doen: select veld1,0
Dat zou idd werken helaas merk ik net dat ik dan nog tegen een conversie fout aanloop :')
  dinsdag 3 april 2012 @ 11:35:09 #167
75592 GlowMouse
l'état, c'est moi
pi_109842741
Nee dat kan niet. De methode van joinen is het enige alternatief op union dat ik kan bedenken.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_109842771
quote:
0s.gif Op dinsdag 3 april 2012 11:35 schreef GlowMouse het volgende:
Nee dat kan niet. De methode van joinen is het enige alternatief op union dat ik kan bedenken.
Oke thanks. Dan gewoon maar een loopje en in de programmeertaal mergen.
  dinsdag 3 april 2012 @ 11:39:31 #169
305897 remi1986
This MF is infected by madness
pi_109842931
Ik kwam dit lelijke stukje code tegen in de code van een oud werknemer.

1
2
$var = false;
$arr = array("key" => $var['key']);

De verwachting is dat hij eruit klapt met een undefined index, maar blijkbaar mag dit. Is dit nieuw?
Als $var gedefinieerd wordt als $var = array(), doet hij dat wel namelijk.
  dinsdag 3 april 2012 @ 21:09:03 #170
370539 kucher
is snucher
pi_109867339
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
   SELECT TOP 1
      t.iets1,
      t.iets2,
      NULL
   FROM tabel1 AS t
   WHERE t.id=2
UNION ALL
   SELECT TOP 1
      q.iets3,
      NULL,
      NULL
   FROM tabel2 AS q
   WHERE q.id=2
UNION ALL
   SELECT TOP 1
      s.iets4
      s.iets5
      s.iets6
   FROM tabel3 AS s
   WHERE s.id=2
  donderdag 5 april 2012 @ 11:47:52 #171
118585 Crutch
Filantroop || Taalzwengel
pi_109933301
Hoe zou ik accessoires gerelateerd kunnen maken aan meerdere producten?
Zelf zat ik te denken aan een cel met kommagescheiden waarden(id's) waar het product bij zou passen, maar wordt een query dan niet ongelofelijk omslachtig?

En zou ik die accessoires in dezelfde tabel als de producten mogen zetten?
Je moeder is een hamster
  donderdag 5 april 2012 @ 11:48:35 #172
56176 Catch22-
Ben je Blind?!
pi_109933328
koppeltabel maken?

product_id | accessoire_id

?

en dan een gecombineerde sleutel maken
Heel veel groetjes, Catch22
En zoals mijn opa zei: "Al is het meisje nog zo mooi, haar poep stinkt ook". Rust Zacht opa..
Met GHB nooit meer nee
Storneren een optie?
  donderdag 5 april 2012 @ 11:48:59 #173
299167 stefanhaan
Bloeddorstige wasbeer
pi_109933343
quote:
11s.gif Op donderdag 5 april 2012 11:48 schreef Catch22- het volgende:
koppeltabel maken?

product_id | accessoire_id

?

en dan een gecombineerde sleutel maken
Dat lijkt me wel de beste oplossing. En het simpelst om te implementeren.
It was an opportunity to honour our memories and to make room for new ones
  donderdag 5 april 2012 @ 11:50:07 #174
56176 Catch22-
Ben je Blind?!
pi_109933393
Ik mis het devven soms best wel. Ben nu fulltime met de frontend bezig (en interaction design), maar backenddevelopment kan toch ook wel tof zijn soms.

Maarja, je kan niet alles doen he
Heel veel groetjes, Catch22
En zoals mijn opa zei: "Al is het meisje nog zo mooi, haar poep stinkt ook". Rust Zacht opa..
Met GHB nooit meer nee
Storneren een optie?
  donderdag 5 april 2012 @ 11:51:25 #175
118585 Crutch
Filantroop || Taalzwengel
pi_109933447
Ok, koppeltabel dus. :)

Hoe moet ik die structuur voor me zien?
Je moeder is een hamster
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')