|
| 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
| |
|
|