Avatar billede anders77 Nybegynder
19. februar 2002 - 22:41 Der er 17 kommentarer og
1 løsning

SQL-sætning

Hej

Kan nogen hjælpe mig med dette udtræk, som er skrevet på en mellemting med engelsk og sql :-)

SELECT * FROM courses {hvis courses.course_id findes i course_subscriptions.course_id og hvis course_subscriptions.user_id=$SESSION_ID}

Jeg bruger PHP, hvis det skulle være nødvendigt.

Her er tabellerne:

CREATE TABLE course_subscriptions (
  user_id varchar(50) NOT NULL,
  course_id varchar(50) NOT NULL
);

CREATE TABLE courses (
  course_id tinyint(4) DEFAULT '0' NOT NULL,
  course_name varchar(20),
  course_description varchar(100),
  course_path varchar(128),
  course_background varchar(64),
  course_inc varchar(64),
  course_css varchar(64),
  course_tool_path varchar(128),
  PRIMARY KEY (course_id)
);

VH

Anders
Avatar billede anders77 Nybegynder
19. februar 2002 - 22:42 #1
Kort sagt; træk alle data ud fra courses hvis "courset er subscribet (0/1)" i course.subscribtions
Avatar billede repsac Nybegynder
19. februar 2002 - 22:47 #2
SELECT * FROM courses WHERE course_subscrption.course_id LIKE '%courses.course_id%' && course_subscription.user_id='$session_id'

... må det vel være(?)
Avatar billede proaccess Nybegynder
20. februar 2002 - 08:18 #3
SELECT courses.* INNER JOIN cource_subscriptons ON cources.course_id=course_subscriptions.course_id WHERE course_subscriptions.user_id = $SESSION_ID
Avatar billede anders77 Nybegynder
20. februar 2002 - 09:14 #4
Med denne sætning:

$query    = mysql_query("SELECT courses.* INNER JOIN cource_subscriptons ON cources.course_id=course_subscriptions.course_id WHERE course_subscriptions.user_id = $SESSION_ID") or die ($query."<br>".mysql_error());

Får jeg denne fejl:

You have an error in your SQL syntax near 'JOIN cource_subscriptons ON cources.course_id=course_subscriptions.course_id WHE' at line 1
Avatar billede proaccess Nybegynder
20. februar 2002 - 09:25 #5
UNDSKYLD, Mangler FROM...  Skal selvfølgelig være:

SELECT courses.* FROM courses INNER JOIN cource_subscriptons ON cources.course_id=course_subscriptions.course_id WHERE course_subscriptions.user_id = $SESSION_ID
Avatar billede anders77 Nybegynder
20. februar 2002 - 09:27 #6
Så fer jeg denne :-)

You have an error in your SQL syntax near 'ON cources.course_id=course_subscriptions.course_id WHERE course_subscriptions.u' at line 1
Avatar billede proaccess Nybegynder
20. februar 2002 - 09:42 #7
det er bare mig, som ikke kan stave...

courCes skal med s

SELECT courses.* FROM courses INNER JOIN cource_subscriptons ON courses.course_id=course_subscriptions.course_id WHERE course_subscriptions.user_id = $SESSION_ID
Avatar billede anders77 Nybegynder
20. februar 2002 - 09:54 #8
Nu har jeg rettet lidt i den, men får stadig:

You have an error in your SQL syntax near 'ON courses.course_id=course_subscriptions.course_id WHERE course_subscriptions.u' at line 1

$query    = mysql_query("SELECT courses.* FROM courses INNER JOIN course_subscriptions ON courses.course_id=course_subscriptions.course_id WHERE course_subscriptions.user_id = $SESSION_ID") or die ($query."<br>".mysql_error());
Avatar billede proaccess Nybegynder
20. februar 2002 - 10:00 #9
Hvad version af MySQL bruger du?

Før version 3.23.16 brugte MySQL ikke ON-clause...

og du burde således kunne bruge:
SELECT courses.* FROM courses INNER JOIN course_subscriptions WHERE courses.course_id = course_subscriptions.course_id AND Course_subscriptions.user_id = $SESSION_ID
Avatar billede anders77 Nybegynder
20. februar 2002 - 10:04 #10
Jeg tror at jeg bruger: MySQL 3.22.32
Avatar billede anders77 Nybegynder
20. februar 2002 - 10:06 #11
Nu får jeg denne fejl:

Unknown table 'courses'

Med denne sætning:

$query    = mysql_query("SELECT courses.* FROM courses INNER JOIN course_subscriptions WHERE courses.course_id = course_subscriptions.course_id AND course_subscriptions.user_id = $SESSION_ID") or die ($query."<br>".mysql_error());
Avatar billede proaccess Nybegynder
20. februar 2002 - 10:06 #12
Så prøv med den netop foreslåede SQL...
Avatar billede anders77 Nybegynder
20. februar 2002 - 10:09 #13
samme fejl - jeg har rettet Course_subscriptions.user_id til course_subscriptions.user_id
Avatar billede proaccess Nybegynder
20. februar 2002 - 10:21 #14
Du har ikke samme data-type... Det KAN være grunden til dette... Prøv at ændre dine tabeller til at have samme datatype i course_id.
Avatar billede anders77 Nybegynder
20. februar 2002 - 10:24 #15
Det gjorde desværre ingen forksel; Unknown table 'courses'

CREATE TABLE courses (
  course_id varchar(4) DEFAULT '0' NOT NULL,
  course_name varchar(20),
  course_description varchar(100),
  course_path varchar(128),
  course_background varchar(64),
  course_inc varchar(64),
  course_css varchar(64),
  course_tool_path varchar(128),
  PRIMARY KEY (course_id)
);

#

CREATE TABLE course_subscriptions (
  user_id varchar(4) NOT NULL,
  course_id varchar(40) NOT NULL
);
Avatar billede anders77 Nybegynder
20. februar 2002 - 10:25 #16
Du får lige den jeg bruger igen;:

$query = mysql_query("SELECT courses.* FROM courses INNER JOIN course_subscriptions WHERE courses.course_id = course_subscriptions.course_id AND course_subscriptions.user_id = $SESSION_ID") or die ($query."<br>".mysql_error());
Avatar billede proaccess Nybegynder
20. februar 2002 - 10:31 #17
Jeg er desværre blank... Det skulle virke, og hvorfor det íkke gør det er et mysterium for mig ;-(

BEKLAGER MEGET...

SELECT courses.* FROM courses INNER JOIN course_subscriptions WHERE courses.course_id = course_subscriptions.course_id AND course_subscriptions.user_id = $SESSION_ID
Avatar billede anders77 Nybegynder
23. februar 2002 - 17:46 #18
Tak for hjælpen.
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