我是一个完整的SQL菜鸟,不知道如何利用JOIN。如果有人可以帮助解决这个问题,那就太好了。
我有一个表questions
,其中包含两列:queid
和que
。
另一个表options
包含问题的相应选项,并包含optionid
,queid
,option
列。
如何执行SELECT
声明,以便我可以根据queid
将两个表连接在一起?
类似的东西:
SELECT * from questions,options where queid=1
答案 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。