Avatar billede scriptworld Nybegynder
06. november 2001 - 20:55 Der er 10 kommentarer

Flette forespørgelser

Hvorfor giver denne flettede forespørgsel en fejl?:

$sql = \"SELECT
companies.Name,
companies.Address,
companies.Postcode,
companies.Phone,
companies.Fax,
companies.WWW,
companies.Email,
postcodes.Postcode,
postcodes.City
FROM companies LEFT JOIN postcodes ON postcodes.Postcode = companies.PostCode where companies.CompanyKey = (select CompanyKey from categorycompanylinks where CategoryKey = \'$firma_cat\')\";

Et eller andet går da helt galt der!...

mysq_error() giver dette:
You have an error in your SQL syntax near \'select CompanyKey from categorycompanylinks where CategoryKey = \'56\')\'
Avatar billede mortenfn Nybegynder
06. november 2001 - 20:57 #1
du kan ikke have to select inden i hinanden
Avatar billede mortenfn Nybegynder
06. november 2001 - 21:01 #2
companies LEFT JOIN postcodes ON postcodes.Postcode = companies.PostCode where companies.CompanyKey = \'$firma_cat\' and CompanyKey.categorycompanylinks = \'$firma_cat\'\";
Avatar billede scriptworld Nybegynder
06. november 2001 - 21:11 #3
du kan sagtens have to forespørgelser inde i hinanden!... Jeg vil ha lavet en indre forespørgsel, det er sgu da muligt i andre sql produkter!...

desuden duede dit forslag ikke :-/

Desværre ;-)
Avatar billede scriptworld Nybegynder
06. november 2001 - 21:14 #4
sub select er da implementeret eller hvad?
Avatar billede mortenfn Nybegynder
06. november 2001 - 21:25 #5
Avatar billede alvion Nybegynder
07. november 2001 - 09:17 #6
MySQL har ikke subselects endnu. Det bliver (så vidt jeg ved) implementeret i version 4.1. De er pt. ved at lave version 4.0, som bliver en \"lille\" version - blot et springbrædt der skaber en platform for nogle af de tilføjelser, de vil implementere i version 4.1.
Avatar billede alvion Nybegynder
07. november 2001 - 09:21 #7
Du burde til gengæld kunne bruge nedenstående istedet:

FROM categorycompanylinks
LEFT JOIN companies ON categorycompanylinks.CompanyKey = companies.CompanyKey
LEFT JOIN postcodes ON companies.PostCode = postcodes.Postcode
WHERE categorycompanylinks.CategoryKey = \'$firma_cat\'
Avatar billede mortenfn Nybegynder
07. november 2001 - 18:26 #8
noget om join her:


http://www.thorsnet.dk/index.php?m=Scripts&side=vis_fil&fil=mysql%20JOIN

http://www.mysql.com/doc/L/E/LEFT_JOIN_optimisation.html

alvion >> seb-select i mysql 4.1 hvor har du fundet noget om dette, der står da intet om det på mysqls sider - jeg har da ikke kunnet finde det, men det er jo ikke det samme som det ikke er der.

;O)

Avatar billede alvion Nybegynder
07. november 2001 - 21:05 #9
Avatar billede kube Nybegynder
11. november 2001 - 02:09 #10
jeg tror det er fordi du laver LEFT JOIN uden at lave en GROUP BY bagefter!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester