如何在查询中选择两个表

时间:2013-11-06 15:32:53

标签: php mysql database

我试图从两个不同的表中获取'指示'的数据。

仅在选择FROM number_one时,脚本才能正常工作。

尝试使用a,inbetween但是不起作用。

我该怎么做?

query2 = mysql_query("SELECT `indication` FROM `number_one`, `number_two` ORDER BY `indication` DESC"); 
while($row2 = mysql_fetch_object($query2)){
if($explode2[1] == $row2->indication){
echo "<option value=\"$row2->indication\" selected=\"selected\">$row2->indication</option>";
}
else{
echo "<option value=\"$row2->indication\">$row2->indication</option>";
}
}

解决方案

query2 = mysql_query("SELECT `indication` FROM `number_one` UNION ALL SELECT `indication` FROM `number_two` ORDER BY `indication` DESC"); 
while($row2 = mysql_fetch_object($query2)){
if($explode2[1] == $row2->indication){
echo "<option value=\"$row2->indication\" selected=\"selected\">$row2->indication</option>";
}
else{
echo "<option value=\"$row2->indication\">$row2->indication</option>";
}
}

1 个答案:

答案 0 :(得分:-2)

假设您有两个表number_onenumber_two以及indication列,您的查询将交叉连接两个表,为您提供一组行,每行包含两列(number_one.indicationnumber_two.indication,以所有可能的组合。

如果我正确理解了这个问题,您希望将它们作为一列,并使用两个表中的所有值。这可以使用UNION ALL集合运算符来完成,如下所示:

SELECT indication
FROM ( SELECT indication
       FROM   number_one
       UNION ALL 
       SELECT indication
       FROM   number_two)
ORDER BY 1 DESC