簡體   English   中英

如何從mysql中的兩個表中選擇數據

[英]how to select data from two tables in mysql

我的SQL Server數據庫中有兩個表。 第一個是問題,第二個是Question_options。每個問題4個選項兩個表中都有一個qid列。 我的數據庫結構:questuons表:

qid    q_text     discription
1    what is ip    some data
2    what is ipv   same data

和question_options表是這樣的:

   oid qid   options     correct_answer
    1   1    option1       0
    2   1    option2       0
    3   1    option3       1
    4   1    option4       0
    5   2    example1      0
    6   2    example4      1
    7   2    example3      0
    8   2    example2      0

如何獲取問題和question_options表數據,以及如何顯示獲取的數據,如下所示:

<div id="qid">qid</div>
<div id ="q_text">q_text</div>
<div id="options1">option1</div>
<div id="options2">option2</div>
<div id="options3>option3</div>
<div id="options4>option4</div>
<div id="correct_answer">correct_answer</div>
<div id="discription">discription</div>

如何使用一個sql語句從table1和4個選項中選擇qid,q_text和table2中的qid?

您可以使用基於QID的連接來獲取數據,並使用SUBSTRING減去字符串,如下所示:如果要獲取所有正確的答案,則可以使用:

select 
q.qid,
q.q_text,
qo.options,
if(qo.correct_answer = 1,substring(qo.options,length(qo.options)),null) as correct_answer,
q.description
from questions q,question_options qo
where q.qid = qo.qid

如果您只想獲取正確的數據,則可以使用:

select 
q.qid,
q.q_text,
qo.options,
if(qo.correct_answer = 1,substring(qo.options,length(qo.options)),null) as correct_answer,
q.description
from questions q,question_options qo
where q.qid = qo.qid
and if(qo.correct_answer = 1,1,null) is not null

如果您想獲取單個問題的數據,則可以再加上一個條件:

and q.qid = 1

演示

select 
 q.qid, 
 q.q_text,  
 qo.options, 
 IF(qo.correct_answer = 1, substring(qo.options, 7, 1), 0) 
 q.discription
from questions q
join question_options qo on q.qid=qo.qid

查詢應如下所示

$query = SELECT * FROM questuons LEFT JOIN question_options ON questuons.qid=question_options.qid where question_options.correct_answer= '1'";

和PHP代碼應如下所示

$result = $DBconn->query($query );
while($row=$result->fetch_array()) {
  echo $row['q_text'];
} 

嘗試以上。 希望它能工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM