2016-05-31 45 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

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