2016-05-31 47 views
1

您好,我有一個帶有內部聯接的查詢,它帶有一個問題,4個來自db的回答。我想使這個查詢只需要提問郎表是「恩」 這是查詢:內部聯接查詢選擇lang是en的數據庫

$mysql->query("SELECT Q.id AS id, Q.question, QA.answer1, QA.answer2, 
         QA.answer3, QA.answer4, QA.correct, QC.name AS cat_name 
       FROM question Q 
        INNER JOIN question_answers QA ON QA.questionFK=Q.id 
        INNER JOIN question_cats QC ON QC.id=Q.categoryFK 
       ORDER BY rand() 
       LIMIT 1"); 

我儘量讓這樣的:

$mysql->query("SELECT Q.id AS id, Q.question, QA.answer1, QA.answer2, 
         QA.answer3, QA.answer4, QA.correct, QC.name AS cat_name 
       FROM question Q 
        INNER JOIN question_answers QA ON QA.questionFK=Q.id 
        INNER JOIN question_cats QC ON QC.id=Q.categoryFK 
       WHERE Q.lang='en' 
       ORDER BY rand() 
       LIMIT 1"); 

但沒」噸的工作,這是選擇每隔... 我在哪裏錯了,我應該怎麼做?

這些是2個表:

CREATE TABLE IF NOT EXISTS `question` (
    `id` int(10) NOT NULL AUTO_INCREMENT, 
    `question` varchar(255) NOT NULL, 
    `cnt` int(10) NOT NULL DEFAULT '0', 
    `correct` int(10) NOT NULL DEFAULT '0', 
    `categoryFK` int(3) NOT NULL DEFAULT '0', 
    `from_userFK` int(10) NOT NULL DEFAULT '0', 
    `correct_points` int(10) DEFAULT NULL, 
    `ut` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    `del` enum('yes','no') NOT NULL DEFAULT 'no', 
    `lang` varchar(32) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=26 ; 

CREATE TABLE IF NOT EXISTS `question_answers` (
    `id` int(10) NOT NULL AUTO_INCREMENT, 
    `questionFK` int(10) NOT NULL, 
    `answer1` varchar(255) CHARACTER SET cp1251 NOT NULL, 
    `answer2` varchar(255) CHARACTER SET cp1251 NOT NULL, 
    `answer3` varchar(255) CHARACTER SET cp1251 NOT NULL, 
    `answer4` varchar(255) CHARACTER SET cp1251 NOT NULL, 
    `correct` int(1) NOT NULL, 
    `ut` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    `del` enum('yes','no') CHARACTER SET cp1251 NOT NULL DEFAULT 'no', 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=25 ; 
+1

您能否包含表格的描述? – dimlucas

+0

對不起,你沒有理解你到底需要什麼? –

+0

您的表格的結構。 「DESCRIBE」查詢的輸出最好如下:'DESCRIBE question_answers' – dimlucas

回答

0

對我來說,感覺就像你的過濾器條件WHERE Q.lang='en'沒有任何記錄等結果相匹配。考慮在比較之前對其進行修整,例如

  WHERE TRIM(Q.lang) ='en' 
+0

它不工作......現在我在數據庫中有兩個問題,一個是與朗'恩'另一個是與朗'寶格'它應該只顯示與朗恩問題,但它顯示兩個.... –

+0

可以你從'問題'表中發佈了一些示例數據? – Rahul

+0

我修好了....... –