我正在尝试添加三个查询:
$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
这三个表,并获取相应的数据。
我怎么能这样做?
答案 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";