与连接不同的行

gue*_*est 4 mysql join duplication

我有两个 MySQL 表:

\n\n
\xe2\x95\x94\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x97\n\xe2\x95\x91 wpss_question_set \xe2\x95\x91\n\xe2\x95\xa0\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa3\n\xe2\x95\x91 id                \xe2\x95\x91\n\xe2\x95\x91 quesset           \xe2\x95\x91\n\xe2\x95\x9a\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x9d\n\n\xe2\x95\x94\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x97\n\xe2\x95\x91 wpss_questions \xe2\x95\x91\n\xe2\x95\xa0\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa3\n\xe2\x95\x91 id             \xe2\x95\x91\n\xe2\x95\x91 question       \xe2\x95\x91\n\xe2\x95\x91 ques_set_id    \xe2\x95\x91\n\xe2\x95\x9a\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x9d\n
Run Code Online (Sandbox Code Playgroud)\n\n

ques_set_id是外键。查询是:

\n\n
SELECT\n    wpss_quesset.quesset,\n    wpss_questions.*\nFROM wpss_quesset\nJOIN wpss_questions \n    ON wpss_quesset.id = wpss_questions.ques_set_id;\n
Run Code Online (Sandbox Code Playgroud)\n\n

ques_set_id我在和上得到重复的结果quesset。如何从 \'ques_set_id和 中选择唯一记录quesset

\n\n

截屏

\n

小智 5

如果您想从其他连接表中选择多行中具有相同 FK 的唯一记录,您可以将查询用作

 SELECT
        wpss_quesset.quesset,
        wpss_questions.*
    FROM wpss_quesset
    JOIN wpss_questions 
        ON wpss_quesset.id = wpss_questions.ques_set_id
   GROUP BY wpss_quesset.id
Run Code Online (Sandbox Code Playgroud)

或者如果您想获取相关 FK 的所有记录,您应该使用 group concat 和 group by

例子

 SELECT
        wpss_quesset.quesset,
        GROUP_CONCAT( wpss_questions.question)
        wpss_questions.*
    FROM wpss_quesset
    JOIN wpss_questions 
        ON wpss_quesset.id = wpss_questions.ques_set_id
   GROUP BY wpss_quesset.id
Run Code Online (Sandbox Code Playgroud)