/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Returnere værdier fra query der ikke
Fra : Lars Kristensen


Dato : 06-04-10 12:13

Hejsa

Jeg kan ikke lige se mig ud af den her, selvom jeg ville mene det var
relativt simpelt. Mon der er nogen der har et hint?

Hvis man f.eks. har en tabel (tbl) i en MySQL der ser ud som sådan:

*------*
| tal |
*------*
| 1 |
| 2 |
| 3 |
*------*

Følgende query:
   SELECT tal FROM tbl WHERE tal IN {2, 3, 4, 5}
vil returnere:
*------*
| tal |
*------*
| 2 |
| 3 |
*------*

Følgende query:
   SELECT tal FROM tbl WHERE tal NOT IN {2, 3, 4, 5}
vil returnere:
*------*
| tal |
*------*
| 1 |
*------*

Hvordan får jeg lavet en query der returnerer det der ikke er
præsenteret i tabellen? Altså:
*------*
| tal |
*------*
| 4 |
| 5 |
*------*



- Lars

 
 
Arne Vajhøj (07-04-2010)
Kommentar
Fra : Arne Vajhøj


Dato : 07-04-10 01:39

On 06-04-2010 07:13, Lars Kristensen wrote:
> Jeg kan ikke lige se mig ud af den her, selvom jeg ville mene det var
> relativt simpelt. Mon der er nogen der har et hint?
>
> Hvis man f.eks. har en tabel (tbl) i en MySQL der ser ud som sådan:
>
> *------*
> | tal |
> *------*
> | 1 |
> | 2 |
> | 3 |
> *------*
>
> Følgende query:
> SELECT tal FROM tbl WHERE tal IN {2, 3, 4, 5}
> vil returnere:
> *------*
> | tal |
> *------*
> | 2 |
> | 3 |
> *------*
>
> Følgende query:
> SELECT tal FROM tbl WHERE tal NOT IN {2, 3, 4, 5}
> vil returnere:
> *------*
> | tal |
> *------*
> | 1 |
> *------*
>
> Hvordan får jeg lavet en query der returnerer det der ikke er
> præsenteret i tabellen? Altså:
> *------*
> | tal |
> *------*
> | 4 |
> | 5 |
> *------*

Du har brug for en tabel der definerer hvad "total" er.

SELECT * FROM total WHERE tal NOT IN SELECT tal FROM tbl

Da MySQL functions så vidt jeg ved ikke kan returnere en
tabel bliver du nok nødt til at have en faktisk tabel.

Arne




Lars Kristensen (07-04-2010)
Kommentar
Fra : Lars Kristensen


Dato : 07-04-10 06:20

Arne Vajhøj wrote:
>
> Du har brug for en tabel der definerer hvad "total" er.
>
> SELECT * FROM total WHERE tal NOT IN SELECT tal FROM tbl
>
> Da MySQL functions så vidt jeg ved ikke kan returnere en
> tabel bliver du nok nødt til at have en faktisk tabel.
>

Det var lidt det jeg "frygtede". Så er det nok lige så nemt for mig at
håndtere det i min php kode i stedet for at oprette temporære tabeller,
putte indhold i lave det egentlig forespørgelse for derefter at nedlægge
tabellen igen. PHP har indbyggede funktioner der kan finde forskellen på
arrays.

Tak for svar.

- Lars

Arne Vajhøj (08-04-2010)
Kommentar
Fra : Arne Vajhøj


Dato : 08-04-10 02:56

On 07-04-2010 01:20, Lars Kristensen wrote:
> Arne Vajhøj wrote:
>>
>> Du har brug for en tabel der definerer hvad "total" er.
>>
>> SELECT * FROM total WHERE tal NOT IN SELECT tal FROM tbl
>>
>> Da MySQL functions så vidt jeg ved ikke kan returnere en
>> tabel bliver du nok nødt til at have en faktisk tabel.
>
> Det var lidt det jeg "frygtede". Så er det nok lige så nemt for mig at
> håndtere det i min php kode i stedet for at oprette temporære tabeller,
> putte indhold i lave det egentlig forespørgelse for derefter at nedlægge
> tabellen igen. PHP har indbyggede funktioner der kan finde forskellen på
> arrays.

Det er naturligvis en mulighed.

Men ellers hvis range af de numre er nogenlunde
begrænset så fylder det jo ikke meget med f.eks.
1 til 1 million i en tabel og så selecte med en
WHERE.

Arne


Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste