我在同一张表“ contratto”上有2个SELECT;在php(和mysql)中,我这样做的是:
$sql_1=" SELECT * FROM contratto WHERE id_cliente='2' " ;
$sql_2=" SELECT * FROM contratto JOIN cliente ON contratto.id_cliente=cliente.id WHERE cliente.id_rivenditore = '2' " ;
$sql= "(" . $sql_1 . ") UNION ALL (" . $sql_2 .") ; ";
mysqli_query($connect, $sql);
while($row = mysqli_fetch_assoc($risultato_query)) { ..... }
两个SQL查询$ sql_1和$ sql_2分别工作正常。 查询$ sql($ sql_1和$ sql_2的联合)不起作用,即:
( SELECT * FROM contratto WHERE id_cliente=’2′ ) UNION ALL ( SELECT * FROM contratto JOIN cliente ON contratto.id_cliente=cliente.id WHERE cliente.id_rivenditore = ‘2’ ) ;
我收到错误消息“ mysqli_fetch_assoc()期望参数1为mysqli_result,布尔值在...中给出”
怎么了?
答案 0 :(得分:0)
union
至少有一个错误。联合中的所有子查询都必须具有相同的列,因此select *
不适用(在这种情况下尤其如此)。
另一个错误来自PHP,因为您没有检查来自SQL的错误。如果这样做了,您会从数据库中看到错误消息。