用于在结果中连接列的SQL查询

时间:2011-11-28 08:43:16

标签: mysql sql

我是一个完整的SQL菜鸟,不知道如何利用JOIN。如果有人可以帮助解决这个问题,那就太好了。

我有一个表questions,其中包含两列:queidque。 另一个表options包含问题的相应选项,并包含optionidqueidoption列。

如何执行SELECT声明,以便我可以根据queid将两个表连接在一起?

类似的东西:

SELECT * from questions,options where queid=1

5 个答案:

答案 0 :(得分:2)

你应该试试这个:

SELECT que.*, opt.* FROM questions que
INNER JOIN options opt ON que.queid = opt.queid
WHERE que.queid = 1

INNER JOIN加载在每个表格中至少有一条相应记录的问题和选项。

如果您需要获得所有问题(即使是没有选项的问题),您也可以使用

SELECT que.*, opt.* FROM questions que
LEFT JOIN options opt ON que.queid = opt.queid
WHERE que.queid = 1

LEFT JOIN总是会加载问题,如果他们有选项,也会加载他们的选项;如果不是,你会为选项列获取NULL。

答案 1 :(得分:2)

可能是

SELECT * FROM questions q JOIN options o ON q.queid=o.queid WHERE q.queid=1

答案 2 :(得分:2)

SELECT q.*,o.* FROM questions q 
JOIN options o ON  q.queid = o.queid
WHERE q.queid = 1

答案 3 :(得分:0)

SELECT *
FROM questions
JOIN options ON questions.queid = options.queid
WHERE questions.queid = 1

答案 4 :(得分:0)

您可以使用它们共有的列来连接两个相关的表。

在你的情况下你可以写:

SELECT * FROM Questions as Q INNER JOIN Options O ON Q.queid=O.queid WHERE Q.quid=1

你也可以省略这样的地方部分:

 SELECT * FROM Questions as Q INNER JOIN Options O ON Q.queid=O.queid AND Q.quid=1

有不同类型的连接:

INNER

OUTER(左,右,全)

通过内部联接,您意味着只返回两个表中常见的记录 当你使用外连接时,给定端的所有记录都返回加上另一边有相应值的记录,否则你将得到null。