开发者

Rewrite SQL statement from USING to ON

开发者 https://www.devze.com 2023-01-23 21:00 出处:网络
Hey guys. Having trouble here. Have to webhotels with same MySQL and PHPmyadmin versions, but reacts different. Mayb something with the MySQL.ini.

Hey guys. Having trouble here. Have to webhotels with same MySQL and PHPmyadmin versions, but reacts different. Mayb something with the MySQL.ini.

How can I rewrite this into ON, from Using.

SELECT wiederquist_elearn_question.idelearn_question AS idelearn_question, idelearn_answer, idelearn_user, name, email, address, zip, city, phone, extra, user_created_time, newsletter, answertime, title, description, illustration, answertext, correct
FROM wiederquist_elearn_user
INNER JOIN wiederquist_elearn_question_answered
USING ( idelearn_user ) 
INNER JOIN wiederquist_elearn_question
USING ( idelearn_question ) 
INNER JOIN wiederquist_elearn_answer
USING ( idelearn_answer ) 
WHERE name IS NOT NULL 
AND idelearn =1

Hope you can help me here.Thank you.

Edit:

Now I got this, but it shows 11.700 results, and it should only show 2. But it is the right results, their just looping.

SELECT wiederquist_elearn_question.idelearn_question AS idelearn_question, name, email, address, zip, city, phone, extra, user_created_time, newsletter, answertime, title, description, illustration, answertext, correct
FROM wiederquist_elearn_user
INNER JOIN wiederquist_elearn_question_answered ON wiederquist_elearn_question_answered.idelearn_user
INNER JOIN wiederquist_elearn_question ON wiederquist_elearn_question.idelearn_question
INNER JOIN wiederquist_elearn_answer ON wiederquist_elearn_answer.idelearn_answer
WHERE name IS NOT NULL 
AND idelearn =1

DB Tables:

    CREATE TABLE `wiederquist_elearn` (
  `ideLearn` int(11) unsigned NOT NULL auto_increment COMMENT 'id',
  `name` varchar(250) default 'uden navn' COMMENT '''Kursus nav',
  `correctRequired` int(1) default '0' COMMENT '''Korrekt svar påkrævet for at fortsætt',
  `successNumber` int(11) default '0' COMMENT '''Antal korrekte svar krævet for "bestået',
  `displayMode` varchar(45) default 'single' COMMENT '''Ved systemets opstart, enkeltvisning eller listevisnin',
  `repeatable` int(1) default '0' COMMENT 'Kan kurset gentages',
  `learning` int(1) default '0',
  `mandatory` int(1) default '0',
  `errorMessage` text,
  PRIMARY KEY  (`ideLearn`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

CREATE TABLE `wiederquist_elearn_answer` (
  `idelearn_answer` int(10) unsigned NOT NULL auto_increment,
  `answertext` text,
  `correct` int(1) default NULL,
  `idelearn_question` int(10) unsigned default NULL,
  `order` int(10) unsigned default NULL,
  `correctText` text,
  PRIMARY KEY  (`idelearn_answer`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

CREATE TABLE `wiederquist_elearn_question` (
  `idelearn_question` int(10) unsigned NOT NULL auto_increment,
  `title` text,
  `description` text,
  `idelearn` int(10) unsigned default NULL,
  `illustration` varchar(150) default 'dummy.jpg',
  PRIMARY KEY  (`idelearn_question`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

CREATE TABLE `wiederquist_elearn_question_answered` (
  `idelearn_question_answered` int(10) unsigned NOT NULL auto_increment,
  `idelearn_user` int(10) unsigned default NULL,
  `idelearn_question` int(10) unsigned default NULL,
  `idelearn_answer` int(1开发者_C百科0) unsigned default NULL,
  `answertime` timestamp NULL default CURRENT_TIMESTAMP,
  PRIMARY KEY  (`idelearn_question_answered`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

CREATE TABLE `wiederquist_elearn_user` (
  `idelearn_user` int(10) unsigned NOT NULL auto_increment,
  `name` varchar(250) default NULL,
  `email` varchar(250) default NULL,
  `address` varchar(200) default NULL,
  `zip` int(4) default NULL,
  `city` varchar(90) default NULL,
  `phone` varchar(45) default NULL,
  `extra` varchar(250) default NULL,
  `user_created_time` timestamp NULL default CURRENT_TIMESTAMP,
  `newsletter` int(1) default NULL,
  PRIMARY KEY  (`idelearn_user`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;


I did it! yay

SELECT wiederquist_elearn_question.idelearn_question AS idelearn_question, wiederquist_elearn_answer.idelearn_answer, wiederquist_elearn_user.idelearn_user, name, email, address, zip, city, phone, extra, user_created_time, newsletter, answertime, title, description, illustration, answertext, correct
FROM wiederquist_elearn_user
INNER JOIN wiederquist_elearn_question_answered
USING ( idelearn_user ) 
INNER JOIN wiederquist_elearn_question
USING ( idelearn_question ) 
INNER JOIN wiederquist_elearn_answer ON wiederquist_elearn_answer.idelearn_answer = wiederquist_elearn_question_answered.idelearn_answer
WHERE name IS NOT NULL and idelearn = 1

Thanks guys


You should use INNER JOIN jointablename ON jointablename.join_id = tablename.id, for this case query will looks like:

SELECT weq.idelearn_question AS idelearn_question, idelearn_answer, weu.idelearn_user 
as idelearn_uder, name, email, address, zip, city, phone, extra, user_created_time, 
newsletter, answertime, title, description, illustration, answertext, correct
    FROM wiederquist_elearn_user AS weu
       INNER JOIN wiederquist_elearn_question_answered AS weqa 
           ON weu.idelearn_user = weu.idelearn_user
      INNER JOIN wiederquist_elearn_question AS weq 
           ON weq.idelearn_question = (table your need to join).idelearn_question
and so on..
0

精彩评论

暂无评论...
验证码 换一张
取 消