2010-11-05 2 views
0

Эй, ребята. Здесь есть проблемы. Приходите к веб-отелям с теми же версиями MySQL и PHPmyadmin, но реагирует иначе. Mayb что-то с MySQL.ini.Переписать инструкцию SQL из USING на ON

Как я могу переписать это в ВКЛ, с помощью.

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 

Надеюсь, вы сможете помочь мне здесь.Спасибо.

Edit:

Теперь я получил, но это показывает 11.700 результаты, и он должен показать только 2. Но это правильные результаты, их просто перекручивание.

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 Таблицы:

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(10) 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 ; 
+0

вы можете вставить соответствующие таблицы БД и отношения? – yoda

ответ

0

Вы должны использовать INNER JOIN jointablename ON jointablename.join_id = tablename.id, для этого случая запрос будет выглядеть так:

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

Можете ли вы дать мне рабочий пример. На самом деле нужно это изучить. Я попытался вставить имя таблицы, в которой мне нужно присоединиться, без везения. – Holsteinkaa

+0

Я не знаю структуру таблиц, которые вы используете, поэтому я могу написать неправильное предложение ON. – qnikst

1

Я сделал это ! 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 

Спасибо, ребята

+0

Я все еще вижу использование и PLS, PLS учиться на псевдоним !! (http://pastie.org/1274615) –

+0

Тогда это был псевдоним, который испортил его. Странно, как серверы differnet могут интерпретировать по-разному. – Holsteinkaa

+0

надеюсь, что мой простой пример упростит для вас. я обычно использую первую букву таблицы для псевдонима, если это возможно, поэтому клиенты c в вашем случае с вашими длинными именами таблиц делают что-то вроде wiederquist_elearn_question_answered как weqa, wiederquist_elearn_question as weq и т. д. ... –