从多个表中查询,没有任何共同之处


A mysql query from multiple tables without anything in common

编辑:对不起,伙计们,我不知道你可以在同一页面上做三个SELECT查询,就像那样,我认为限制是1个查询/页面,而不是1种查询/页面。我已经解决了我的问题,把它分成多个查询,但问题仍然存在(只是出于好奇):是否有可能查询多个表没有WHEN子句,连接表没有得到笛卡尔积?

谢谢你的回复,你的许多"把它分成多个查询"的回复让我说:"如果……这容易吗?":)。下面的原始问题:


我对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页面(不添加帧集/帧ecc.)?我也试过打破它在多个查询后,这家伙的例子http://www.dev-explorer.com/articles/multiple-mysql-queries,但它没有工作。

编辑:示例数据

TABLE1:

----------------------------
fruit_id | f_name | f_color
----------------------------
1        | apple  | red
2        | banana | yellow

表:

----------------------------
player_id | player_name
----------------------------
1         | John
2         | Scott
3         | Mike
4         | George

TABLE3:

----------------------------
other_id | other_name
----------------------------
1        | Alex

我希望能够进入同一页的数组fruit_id美元值[' 1 ',' 2 '],美元f_name("苹果"、"香蕉"),美元f_color("红"、"绿色"),美元player_id [' 1 ', ' 2 ', ' 3 ', ' 4 '] ecc . .

不一定是mysql,只要我能得到这些数组

  1. 您在示例中所做的是执行三个表的笛卡尔积。这意味着将显示三个表中包含的元组的每个组合

    这可能不是您想要的,因此您应该查看连接,以限制行数。

    MySql还支持像Union这样的Set操作,如果你想在一些更复杂和嵌套的查询中冒险。然而,我建议只是坚持连接

  2. 如果数据实际上没有以任何方式连接,请尝试发出多个查询(不要试图将所有内容放入单个SQL语句中),并以您想要显示的任何形式手动输出数据

没有更多关于你在做什么的信息,我不能给你任何其他建议

只需运行3个单独的查询,并将结果放入不同的数组变量中。你把这种方式变得太困难了;停下来思考一下你的问题,不要看代码

您还应该考虑使用PDO而不是您正在使用的已弃用的my_sql_*函数。这将让你开始:

http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers