加入三个数组查询

时间:2014-03-26 10:46:24

标签: php mysql arrays

我正在尝试添加三个查询:

$query1 = "SELECT * FROM sailors S";
$query2 = "SELECT * FROM boats B";
$query3 = "SELECT * FROM reserves R";

我需要存储在数组中:

$arr1 = array($query1);
$arr2 = array($query2);
$arr3 = array($query3);

我试过了:

$queryall = 
"SELECT q1.sname, q1.age, q1.rating, q2.bname, q2.color, q3.rdate 
FROM ($arr1) AS q1, ($arr2) AS q2, ($arr3) AS q3 
WHERE q1.sid = q3.sid AND q2.bid = q3.bid";

但由于数组,它给我数组到字符串conversion error。 在join中,我需要arrays这三个表,并获取相应的数据。 我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

如果我理解正确,你应该能够破坏数组,获得字符串结果,并使用它。

实际上,这只是将数组转换为字符串,然后在查询中使用它们。

请参阅this question,了解如何将包含单个元素的数组转换为php中的字符串。

$text1 = array_shift($arr1);
$text2 = array_shift($arr2);
$text3 = array_shift($arr3);

$queryall = 
"SELECT q1.sname, q1.age, q1.rating, q2.bname, q2.color, q3.rdate 
FROM ($text1) AS q1, ($text2) AS q2, ($text3) AS q3 
WHERE q1.sid = q3.sid AND q2.bid = q3.bid";

答案 1 :(得分:0)

SELECT q1.sname, q1.age, q1.rating, q2.bname, q2.color, q3.rdate FROM sailors AS q1, boats AS q2, reserves AS q3 WHERE q1.sid=q3.sid AND q2.bid=q3.bid

我的snytax可能都错了。 SQL不是我的强项。您可以使用JOIN而不是选择所有这些。

按数组执行。

在对数组的查询中,您已为表添加了一个名称,并从中选择了所有列。要构建它,您需要此查询:

 (SELECT * FROM sailors S) (SELECT * FROM boats B) (SELECT * FROM reserves R) WHERE S.sid=R.sid AND B.bid=R.bid

所以

$query="($arr1)($arr2)($arr3) WHERE S.sid=R.sid AND B.bid=R.bid";

或者,如果您想使用AS

$arr1="SELECT q1.name,q1.age,q1.rating FROM sailors AS q1";
$arr2="SELECT q2.bname,q2.color FROM boats AS q2";
$arr3="SELECT q3.rdate FROM reserves AS q3";

$query="($arr1)($arr2)($arr3) WHERE q1.sid=q3.sid AND q2.bid=q3.bid";