Php 将3个SQL查询合并为1个
来自表a中的一行,我需要得到表B中的一行,它得到表C中的一行。 根据我的基本知识,我把一个查询放在一个查询中的一个查询中,但我认为有更好的方法可以做到这一点Php 将3个SQL查询合并为1个,php,sql,Php,Sql,来自表a中的一行,我需要得到表B中的一行,它得到表C中的一行。 根据我的基本知识,我把一个查询放在一个查询中的一个查询中,但我认为有更好的方法可以做到这一点 <?php $result = pg_query($dbconn, " SELECT sequence, w_homepage_package_id FROM adempiere.w_homepage_package WHERE sequence >
<?php $result = pg_query($dbconn, "
SELECT sequence, w_homepage_package_id
FROM adempiere.w_homepage_package
WHERE sequence > 0
ORDER BY sequence ASC
"); // first QUERY
while ($promo = pg_fetch_row($result)) { // first WHILE
$id = $promo[1];
$produktfoto = pg_query($dbconn, "
SELECT w_bilder_id
FROM adempiere.w_homepage_image
WHERE w_homepage_package_id = $id LIMIT 1"); // second QUERY
while ($produktrow = pg_fetch_row($produktfoto)) { // second WHILE
$bilderid = $produktrow[0];
$bildurl = pg_query($dbconn, "
SELECT w_bildurl
FROM adempiere.w_bilder
WHERE w_bilder_id = $bilderid LIMIT 1"); // third QUERY
while ($bildpfad = pg_fetch_row($bildurl)) { // third WHILE
echo $bildpfad[0];
}
}
;}
?>
子查询或联接。可以在相对列上联接三个表,也可以嵌套它们直到到达第一个表
SELECT w_bildurl
FROM adempiere.w_bilder
WHERE w_bilder_id =
(SELECT w_bilder_id
FROM adempiere.w_homepage_image
WHERE w_homepage_package_id IN
(SELECT sequence,
w_homepage_package_id
FROM adempiere.w_homepage_package
WHERE sequence > 0
ORDER BY sequence ASC)
LIMIT 1)
LIMIT 1
子查询或联接。可以在相对列上联接三个表,也可以嵌套它们直到到达第一个表
SELECT w_bildurl
FROM adempiere.w_bilder
WHERE w_bilder_id =
(SELECT w_bilder_id
FROM adempiere.w_homepage_image
WHERE w_homepage_package_id IN
(SELECT sequence,
w_homepage_package_id
FROM adempiere.w_homepage_package
WHERE sequence > 0
ORDER BY sequence ASC)
LIMIT 1)
LIMIT 1
子查询或联接。可以在相对列上联接三个表,也可以嵌套它们直到到达第一个表
SELECT w_bildurl
FROM adempiere.w_bilder
WHERE w_bilder_id =
(SELECT w_bilder_id
FROM adempiere.w_homepage_image
WHERE w_homepage_package_id IN
(SELECT sequence,
w_homepage_package_id
FROM adempiere.w_homepage_package
WHERE sequence > 0
ORDER BY sequence ASC)
LIMIT 1)
LIMIT 1
子查询或联接。可以在相对列上联接三个表,也可以嵌套它们直到到达第一个表
SELECT w_bildurl
FROM adempiere.w_bilder
WHERE w_bilder_id =
(SELECT w_bilder_id
FROM adempiere.w_homepage_image
WHERE w_homepage_package_id IN
(SELECT sequence,
w_homepage_package_id
FROM adempiere.w_homepage_package
WHERE sequence > 0
ORDER BY sequence ASC)
LIMIT 1)
LIMIT 1
尝试此查询,如果需要,使用join
SELECT
whp.sequence,
whp.w_homepage_package_id
FROM
adempiere.w_homepage_package as whp
NATURAL JOIN
adempiere.w_homepage_image as whi
NATURAL JOIN
adempiere.w_builder as wbr
WHERE
whp.sequence > 0
ORDER BY whp.sequence ASC;
尝试此查询,如果需要,使用join
SELECT
whp.sequence,
whp.w_homepage_package_id
FROM
adempiere.w_homepage_package as whp
NATURAL JOIN
adempiere.w_homepage_image as whi
NATURAL JOIN
adempiere.w_builder as wbr
WHERE
whp.sequence > 0
ORDER BY whp.sequence ASC;
尝试此查询,如果需要,使用join
SELECT
whp.sequence,
whp.w_homepage_package_id
FROM
adempiere.w_homepage_package as whp
NATURAL JOIN
adempiere.w_homepage_image as whi
NATURAL JOIN
adempiere.w_builder as wbr
WHERE
whp.sequence > 0
ORDER BY whp.sequence ASC;
尝试此查询,如果需要,使用join
SELECT
whp.sequence,
whp.w_homepage_package_id
FROM
adempiere.w_homepage_package as whp
NATURAL JOIN
adempiere.w_homepage_image as whi
NATURAL JOIN
adempiere.w_builder as wbr
WHERE
whp.sequence > 0
ORDER BY whp.sequence ASC;
使用JOIN关键字,它会让你的生活更轻松
检查这里:使用JOIN关键字,它会让你的生活更轻松
检查这里:使用JOIN关键字,它会让你的生活更轻松
检查这里:使用JOIN关键字,它会让你的生活更轻松
检查这里:应该可以正常工作
$res = "SELECT A.*, B.w_bilder_id, C.w_bildurl FROM w_homepage_package A, w_homepage_image B,w_bilder C WHERE A.sequence>O AND B.w_homepage_package_id=A.sequence AND C.w_bildurl=B.w_bilder_id ORDER BY A.sequence ASC";
$result = pg_query($dbconn, $res);
while ($promo = pg_fetch_row($result))
{
}
应该可以正常工作
$res = "SELECT A.*, B.w_bilder_id, C.w_bildurl FROM w_homepage_package A, w_homepage_image B,w_bilder C WHERE A.sequence>O AND B.w_homepage_package_id=A.sequence AND C.w_bildurl=B.w_bilder_id ORDER BY A.sequence ASC";
$result = pg_query($dbconn, $res);
while ($promo = pg_fetch_row($result))
{
}
应该可以正常工作
$res = "SELECT A.*, B.w_bilder_id, C.w_bildurl FROM w_homepage_package A, w_homepage_image B,w_bilder C WHERE A.sequence>O AND B.w_homepage_package_id=A.sequence AND C.w_bildurl=B.w_bilder_id ORDER BY A.sequence ASC";
$result = pg_query($dbconn, $res);
while ($promo = pg_fetch_row($result))
{
}
应该可以正常工作
$res = "SELECT A.*, B.w_bilder_id, C.w_bildurl FROM w_homepage_package A, w_homepage_image B,w_bilder C WHERE A.sequence>O AND B.w_homepage_package_id=A.sequence AND C.w_bildurl=B.w_bilder_id ORDER BY A.sequence ASC";
$result = pg_query($dbconn, $res);
while ($promo = pg_fetch_row($result))
{
}
这应该是正确的左连接查询(如果我没有忘记的话) 要了解JOIN,请考虑产品笛卡尔:
Table1
f1 f2
----------
a 1
b 4
c 5
Table2
f3 f4
----------
a aa
b cc
f1 f2 f3 f4
--------------------------
a 1 a aa
a 1 b cc
b 4 a aa
b 4 b cc
c 5
Table1 LEFT JOIN Table2 ON f1 = f3
a 1 a aa
b 4 b cc
c 5
Table1 INNER JOIN Table2 ON f1 = f3
a 1 a aa
b 4 b cc
wikypedia有一个很好的例子,这应该是正确的左连接查询(如果我没有忘记任何东西的话) 要了解JOIN,请考虑产品笛卡尔:
Table1
f1 f2
----------
a 1
b 4
c 5
Table2
f3 f4
----------
a aa
b cc
f1 f2 f3 f4
--------------------------
a 1 a aa
a 1 b cc
b 4 a aa
b 4 b cc
c 5
Table1 LEFT JOIN Table2 ON f1 = f3
a 1 a aa
b 4 b cc
c 5
Table1 INNER JOIN Table2 ON f1 = f3
a 1 a aa
b 4 b cc
wikypedia有一个很好的例子,这应该是正确的左连接查询(如果我没有忘记任何东西的话) 要了解JOIN,请考虑产品笛卡尔:
Table1
f1 f2
----------
a 1
b 4
c 5
Table2
f3 f4
----------
a aa
b cc
f1 f2 f3 f4
--------------------------
a 1 a aa
a 1 b cc
b 4 a aa
b 4 b cc
c 5
Table1 LEFT JOIN Table2 ON f1 = f3
a 1 a aa
b 4 b cc
c 5
Table1 INNER JOIN Table2 ON f1 = f3
a 1 a aa
b 4 b cc
wikypedia有一个很好的例子,这应该是正确的左连接查询(如果我没有忘记任何东西的话) 要了解JOIN,请考虑产品笛卡尔:
Table1
f1 f2
----------
a 1
b 4
c 5
Table2
f3 f4
----------
a aa
b cc
f1 f2 f3 f4
--------------------------
a 1 a aa
a 1 b cc
b 4 a aa
b 4 b cc
c 5
Table1 LEFT JOIN Table2 ON f1 = f3
a 1 a aa
b 4 b cc
c 5
Table1 INNER JOIN Table2 ON f1 = f3
a 1 a aa
b 4 b cc
wikypedia有一个很好的例子,使用join。选中UseJoin。选中UseJoin。选中UseJoin。检查我在adempiere上看到一个“builder”而不是“bilder”,一个e缺失,但无论哪种方式它都返回:查询失败:错误:w\u homepage\u image.w\u hompage\u package\u id列不存在第4行:…adempiere.w\u homepage\u package.sequence=adempiere…^灌输2个打字错误(adempier,hompage),但现在可以了。我会尽力去理解它。谢谢我想我已经修复了:)我在adempiere上看到了一个“builder”而不是“bilder”,并且缺少一个e,但无论哪种方式它都会返回:查询失败:错误:w_homepage_image.w_hompage_package_id列不存在第4行:…adempiere.w_homepage_package.sequence=adempiere灌输2个打字错误(adempier,hompage),但现在可以了。我会尽力去理解它。谢谢我想我已经修复了:)我在adempiere上看到了一个“builder”而不是“bilder”,并且缺少一个e,但无论哪种方式它都会返回:查询失败:错误:w_homepage_image.w_hompage_package_id列不存在第4行:…adempiere.w_homepage_package.sequence=adempiere灌输2个打字错误(adempier,hompage),但现在可以了。我会尽力去理解它。谢谢我想我已经修复了:)我在adempiere上看到了一个“builder”而不是“bilder”,并且缺少一个e,但无论哪种方式它都会返回:查询失败:错误:w_homepage_image.w_hompage_package_id列不存在第4行:…adempiere.w_homepage_package.sequence=adempiere灌输2个打字错误(adempier,hompage),但现在可以了。我会尽力去理解它。谢谢我想我把它修好了:)我必须用A、B和C来代替一些东西来做这个工作吗?我必须用A、B和C来代替一些东西来做这个工作吗?我必须用A、B和C来代替一些东西来做这个工作吗?