gpt4 book ai didi

php - 如何 UNION ALL 两个 SELECT 语句?

转载 作者:行者123 更新时间:2023-11-29 09:19:22 25 4
gpt4 key购买 nike

我有 2 个表,其中一个看起来像这样:

表一

id | Last Name | First Name | Username | Password | Secret Question

另一个看起来像这样:

表二

id | Hobby | Country | 

我想组合一个 Select 语句,从两个表中获取数据并输出结果。代码如下:

$select = mysql_query("

SELECT * FROM table_one WHERE Username = 'Bob'

UNION ALL

SELECT * FROM table_two WHERE Hobby = 'Baseball'

");

while ($return = mysql_fetch_assoc($select)) {

$userName = $return['Username'];

$hobby = $return['Hobby'];

}

echo "$userName likes $hobby";

导致使用的 SELECT 语句有不同的列数错误,我做错了什么?

<小时/>

编辑:

运行此命令会出现以下错误:警告:mysql_fetch_assoc():提供的参数不是/home/studentw/public_html/foo.php 第 16 行中的有效 MySQL 结果资源

$select = mysql_query("

SELECT FROM TABLE_ONE t1
INNER JOIN TABLE_TWO t2
ON t1.id = t2.id
WHERE t1.Username = 'Bob'
AND t2.Hobby = 'Baseball'

");

while ($return = mysql_fetch_assoc($select)) {

$firstName = $return['Username'];
$hobby = $return['Hobby'];

}

echo "$firstName likes $hobby";

表中的值为:

表一

id | Last Name | First Name | Username | Password | Secret Question

1 | Hughes | Bobby | Bob | 123 | Maiden name?

表二

id | Hobby | Country | 

1 | Baseball | USA

最佳答案

我想你想要一个 JOIN ,而不是 UNION 或 UNION ALL。

SELECT FROM TABLE_ONE t1
INNER JOIN TABLE_TWO t2
ON t1.id = t2.id
WHERE t1.Username = 'Bob'
AND t2.Hobby = 'Baseball'

联合要求每个表的数据列具有相同的数量和类型,并且基本上为您提供来自不同表的多行的串联。另一方面,联接实质上是通过将另一个表的列与另一个表的列联接起来,将一个表扩展为具有更多列的更宽的表。

当你进行连接时,你需要指定一个表的行如何与另一个表相对应;在这种情况下,我假设您的 Id 字段应该是将表链接在一起的主/外键。如果这是不正确的,我们深表歉意 - 如果是这样,我将需要更多信息才能为您提供适当的帮助。

<小时/>

根据您编辑的问题:

我首先会将您链接到 documentation for the mysql_query function 。它有一个必需参数和一个可选参数;第二个参数是您的连接句柄。如果您不指定它,则 PHP 假定最后一个连接是通过 mysql_connect 打开的。是您想要使用的那个。所以我的第一个问题是,您是否正确调用了 mysql_connect 并且该调用是否成功工作?

如果您确定 mysql_connect 调用有效,那么我不确定问题是什么。不过,我认为将 mysql_connect 的结果分配给变量不会有什么坏处,这样您就可以在 mysql_query 中显式指定连接。也许像下面这样:

$conn = mysql_connect("localhost:3306", "username", "password");
$query = "select * from some_table"; // obviously use your own query here
$result = mysql_query($query, $conn);

如果这不起作用,请告诉我。

关于php - 如何 UNION ALL 两个 SELECT 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2770070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com