![]() |
MySQL förklaring på Intersection och Union
Kan någon förklara dessa två mysql anropen, som jag hittat här http://www.pui.ch/phred/archives/200...e-schemas.html
PHP-kod:
PHP-kod:
Men vid tester så gör exempel ett samma sak som exempel 2 skall göra, jag hittar alltså resultat oavsett om alla tre eller bara en av dem finns som tag. Vad gör t.ex. GROUP BY b.id HAVING COUNT( b.id )=3 för skillnad? Om någon är villig att förklara båda exemplen skulle jag bli glad. :) |
Hmm, HAVING COUNT( b.id )=3 betyder väl att den ska visa b.* för de rader i tabell som har sitt id även i webservice och semweb?
|
förstår inte riktigt...
låt oss säga att jag vill hitta alla bookmarks med taggarna BOLL och SPORT. Då fungerar; PHP-kod:
Men låt oss testa systemet, söker jag på BOLL och KJHAJSGHAGS, vart på KJHAJSGHAGS är en tagg jag vet INTE existerar. PHP-kod:
För att göra det ännu snurrigare och testar att lägga till en tagg till vi vet inte existerar. PHP-kod:
|
Ok. Jag körde detta på en tabell som jag har:
Kod:
SELECT Fornamn |
Citat:
Enligt dem skall exemplet vara lika med en sökning "BOLL + SPORT" alltså BOLL AND SPORT. Vilket borde betyda om inte båda finns så hittas inget. Hur skulle ett sådant anrop sett ut då, med samma struktur? Vill gärna kunna göra allt i ett anrop och slippa massa loopar. |
Om jag ska gissa hur du har tänkt att tabellerna ska fungera så vill du inte ha samma name och tag_id två gånger i tabellen tag. Har du verkligen boll två gånger i tag med samma tag_id?
|
Om den visar en rad från tabellen b vars id _inte_ har en koppling till ett tag_id i tabellen bt med motsvarande t.name=sport så måste det finnas två rader i tabellen bt som motsvarar t.name=boll
Det är min teori. Jag har skickat den till en SQL-guru för verifiering så om jag inte rättar mig så finns det dubletter på ett av dina sökord. |
Alla tider är GMT +2. Klockan är nu 17:36. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson