gpt4 book ai didi

mySQL多列

转载 作者:行者123 更新时间:2023-11-29 01:43:04 25 4
gpt4 key购买 nike

我想编写一个查询来输出两个表的列。我可能希望进行连接,但如果我在左表或右表上进行连接,则可能不会返回值。我想过使用 UNION 关键字,但它会将列重命名为一个名称。然后我不知道哪个栏目有什么。

我希望我的查询选择两个表中的列,但不关心两个表中是否存在与用户名匹配的列,或者两者都不存在。我只希望所有没有值的列都存在。

SELECT *
FROM client_table
JOIN staff_table
ON client_table.username = staff_table.username
WHERE client_table.username = " . mysql_real_escape_string($gotMyUser) . "
OR staff_table " . mysql_real_escape_string($gotMyUser) . " LIMIT 1

更新:

这是查询的输出

Array
(
//FIRST TABLE
[client_id] => 332058
[username] => jake
[firstname] => jake
[lastname] => ****
[email] => *****
[phone] =>
[phone_ext] =>
[mobile] =>
[department] =>
[is_active] => 1
[default_site] => 0
[google] =>

//SECOND TABLE
[staff_id] =>
[group_id] =>
[dept_id] =>
[passwd] =>
[signature] =>
[isactive] =>
[isadmin] =>
[isvisible] =>
[onvacation] =>
[daylight_saving] =>
[append_signature] =>
[change_passwd] =>
[timezone_offset] =>
[max_page_size] =>
[auto_refresh_rate] =>
[created] =>
[lastlogin] =>
[updated] =>

)

这正是我想要的,因为我想知道用户是否有员工 ID 或客户 ID,但根据我执行的连接(左、右或完整),它可能不会返回任何结果。我希望每次执行查询时结果都包含所有这些列,然后进行测试:

if($array['client_id']){
//do stuff with client
}

else if($array['staff_id']){
//do stuff with staff
}

最佳答案

正如 Julius Davies 所建议的,FULL OUTER JOIN 概念正是您所需要的。但是,由于它们在 MySQL 中没有这些,因此您将需要执行 LEFT JOINUNION 以及 RIGHT JOIN

示例(注意它是在 2 个 block 中重复的相同查询,一个使用右外连接,另一个使用左外连接):

SELECT *
FROM client_table
LEFT OUTER JOIN staff_table
ON client_table.username = staff_table.username
WHERE client_table.username = " . mysql_real_escape_string($gotMyUser) . "
OR staff_table " . mysql_real_escape_string($gotMyUser) . "

UNION


SELECT *
FROM client_table
RIGHT OUTER JOIN staff_table
ON client_table.username = staff_table.username
WHERE client_table.username = " . mysql_real_escape_string($gotMyUser) . "
OR staff_table " . mysql_real_escape_string($gotMyUser) . "

查看此 question

关于mySQL多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14344119/

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