mysqli从两个表中选择,其中一个表有多个记录

时间:2017-04-28 20:14:55

标签: mysql sql

<?php
select1($conn); 
function select2 ($conn,$id ,$name)
{   
$stmt = $conn->prepare("SELECT def FROM define WHERE wordkey = ?");
   mysqli_stmt_bind_param($stmt, 'i', $id);
   $stmt->execute(); 
   $stmt->bind_result($def);
     while($stmt->fetch()) {
     echo "here"; // for testing
     $wordArray += $def; 
     //I will make a call to the js function here sending id, name and wordArray
    }  
//$stmt->close();
}
function select1 ($conn){
$stmt2 = $conn->prepare("SELECT id , name FROM words");
   $stmt2->execute(); 
   $stmt2->bind_result($id, $name);
    while($stmt2->fetch()) {
     select2 ($conn,$id ,$name);
}
 }
?>

我想问问题我有单词表和def表。在def表中,我有相同单词的多个定义.id。是否可以在一个查询语句中选择它们? 单词表有id,名字 def表有id,wordkey,定义

我想检索名称,并为每个名称选择其所有定义,以便我将调用javascript函数(id,name,defArray) 使用其定义数组显示每个名称。 我想通过2个select语句来做,但问题是select2函数不起作用。

2 个答案:

答案 0 :(得分:0)

我可以从你问题的非常有限的细节中假设。

尝试

select a.name, b.definition from words a, def b where a.id=b.word_id

在上面的查询中,我们只是从多个表中访问数据。

请提供更多解释(可能包含代码),以便进行精确的错误修复。

希望它有所帮助,一切顺利!

答案 1 :(得分:0)

假设如下:

<强>字 ID |字

<强>定义 ID | WordID |定义

SELECT D.Definition AS definition, W.Word AS word 
FROM definitions D, words W 
WHERE W.ID = D.WordID 
ORDER BY W.Word ASC

这将显示定义行,按照它们对应的单词排序。