Kom ihåg mig?

MYSQL fel

 
Ämnesverktyg Visningsalternativ
Oläst 2011-05-31, 21:18 #1
qm-alexander qm-alexander är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2009
Inlägg: 39
qm-alexander qm-alexander är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2009
Inlägg: 39
Exclamation MYSQL fel

Hejsan alla wnare!

Jag håller på att bli galen och söker nu lite råd här .


Jag har en tabell som innehåller en massa data. (tblDATA)
I den finns det ett fält som heter text och detta vill jag ha ut.

Löseningen bygger på att man inte ska få samma text från tblDATA och därför finns det en kopplingstabell vid namn (tblnoDuplicates)

i tblnoDublicates finns det ett fält vid namn customerID.


MYSQL:

SELECT
tblDATA.text
FROM
tblDATA
Left Join tblnoDuplicates ON tblDATA.dataID = tblnoDuplicates.dataID
WHERE
tblnoDuplicates.customerID NOT LIKE '1' //Detta är ett ID som inte finns.
LIMIT 1

Detta bör resultera i en tblDATA.text men jag får bara null.

Något gör jag fel men vad

Tack för hjälpen!
qm-alexander är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-05-31, 22:05 #2
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
Vore ju önskvärt att få hela tabellstrukturerna.
Finns ens raden med i tabellen du kör left join på?
Testa ta bort limit 1 för att se så du verkligen får som du tänkt dig.
Sen känns det lite varning att ha en tabell för att inte få dubletter?
nosnaj är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-05-31, 22:12 #3
qm-alexander qm-alexander är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2009
Inlägg: 39
qm-alexander qm-alexander är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2009
Inlägg: 39
Här kommer strukturen:

tblDATA
dataID (INT)
text (VARCHAR 255)
userID (INT)
created (DATETIME)

tblnoDuplicates
duplicateID (INT)
dataID (INT)
customerID (INT)
created (DATETIME)
qm-alexander är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-05-31, 22:26 #4
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
Har säkert att göra med att du kör NOT LIKE mot rader som innehåller NULL vilket manualen varnar dig för.
Testa att ta bort WHERE-vilkoret och LIMIT så ser du om du får in NULL vilket sen ställer till det för dig.

http://dev.mysql.com/doc/refman/5.0/...rator_not-like
nosnaj är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-05-31, 22:27 #5
qm-alexander qm-alexander är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2009
Inlägg: 39
qm-alexander qm-alexander är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2009
Inlägg: 39
jag får null värde vad ska jag göra för att lösa detta?
qm-alexander är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-05-31, 22:31 #6
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
Kan du förklara vad du är ute efter och varför du har denna databasstruktur? Rent spontant känns det som att du tänkt fel redan när du designat din databas
jonny är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-05-31, 22:34 #7
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
Vad är anledningen att du har en separat tabell med massa info om duplicates?
Vill du inte visa de rader i tblDATA som finns i tblnoDuplicates?
Isf är det ju enklare att köra en annan sql tex:

SELECT tblDATA.text
FROM tblDATA
WHERE dataID NOT
IN (

SELECT dataID
FROM tblnoduplicates
)
LIMIT 1
nosnaj är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-05-31, 22:40 #8
qm-alexander qm-alexander är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2009
Inlägg: 39
qm-alexander qm-alexander är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2009
Inlägg: 39
Tanken är så här:

Klienten får ett meddelande från tblDATA.
När klienten har fått detta meddelande så lämnas datan om vilket meddelande klienten har fått till tblnoDuplicates så att klienten inte får samma en gång till.

jonny hur hade du tänkt dig att det skulle se ut?
qm-alexander är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-05-31, 22:41 #9
qm-alexander qm-alexander är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2009
Inlägg: 39
qm-alexander qm-alexander är inte uppkopplad
Nykomling
 
Reg.datum: Nov 2009
Inlägg: 39
Citat:
Ursprungligen postat av nosnaj Visa inlägg
Vad är anledningen att du har en separat tabell med massa info om duplicates?
Vill du inte visa de rader i tblDATA som finns i tblnoDuplicates?
Isf är det ju enklare att köra en annan sql tex:

SELECT tblDATA.text
FROM tblDATA
WHERE dataID NOT
IN (

SELECT dataID
FROM tblnoduplicates
)
LIMIT 1
Detta är för att jag vill att klienten inte ska få samma meddelande mer en 1 gång
qm-alexander är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-05-31, 23:19 #10
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
Löste inte min SQL dina problem?
Du får ju dock även lägga in where-vilkor så det kollar för rätt användare, lämnas som övning
Tänk vad enklare livet vore om tblnoduplicates hade hetat readTblDATAItems eller liknande, då skulle man förstå vad den var till för.
nosnaj är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 07:11.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017