感谢您的回复,您的许多“将其划分为多个查询”回复让我说“如果......那么容易怎么办?” :)。原始问题如下:
我对mqsql很新,我遇到了令人讨厌的笛卡尔产品。我正在尝试查询三个没有共同列的表(实际上第二个和第三个表之间存在连接,但忽略它)。 我有表t1(c1,c2,c3),t2(c4,c5),t3(c6,c7),我想做的事情如下:
$query="SELECT * FROM t1, t2, t3";
$request= mysql_query($query);
$row = mysql_fetch_array($query);
$i=0; while ($row = mysql_fetch_array($request))
{
$array1[$i]=$row['c1'];
$array2[$i]=$row['c2'];
$array3[$i]=$row['c3'];
$array4[$i]=$row['c4'];
$array5[$i]=$row['c5'];
$value6=$row['c6'][1];
$value7=$row['c7'][1];
$i++;
}
我想要的只是阵列1-7在同一个php PAGE(没有添加framesets / frames ecc。)? 我也试过在这个人的例子http://www.dev-explorer.com/articles/multiple-mysql-queries之后在多个查询中打破它,但它没有用。
编辑: 示例数据
TABLE1:
----------------------------
fruit_id | f_name | f_color
----------------------------
1 | apple | red
2 | banana | yellow
TABLE2:
----------------------------
player_id | player_name
----------------------------
1 | John
2 | Scott
3 | Mike
4 | George
表3:
----------------------------
other_id | other_name
----------------------------
1 | Alex
我希望能够在同一页面中获得数组 $ fruit_id,值为['1','2'],$ f_name ['apple','banana'],$ f_color ['red','green'],$ player_id ['1','2', '3','4'] ecc ..
它不一定是mysql,只要我得到那些数组。
答案 0 :(得分:0)
您在示例中执行的操作是执行三个表的 cartesian product 。这意味着将显示三个表中包含的元组的每个组合。
这可能不是您想要的,所以您应该查看加入,以限制行数。
MySql还支持Set operations,如联盟,如果您想冒险进行一些更复杂和嵌套的查询。但是我会建议坚持使用 joins
如果数据实际上没有以任何方式连接,请尝试发出多个查询(不要尝试将所有内容都放在一个单独的SQL语句中),并以您想要显示它们的任何形式手动输出数据。
如果没有关于你正在做什么的更多信息,我不能给你任何其他建议
答案 1 :(得分:0)
只需运行3个单独的查询,并将结果放入不同的数组变量中。你这样做太难了;不用看代码就停下来思考一下你的问题
您还应该考虑使用PDO而不是您正在使用的弃用的my_sql_ *函数。这将帮助您入门: