我是MySQL的新手(一般的sql),我正在尝试解决问题。 我有2个表,第一个表包含'客户'列表,第二个表包含'用户'列表。在第一个表中,列中包含“合同经理”和“业务开发”的用户ID号。 ID只是一个数字,它引用“用户”表中的ID号。然后,users表存储有问题用户的名字,姓氏等。
我正在尝试运行一个查询,它将返回合同管理器和业务开发经理的名字和姓氏,然后在PHP中使用它们。
我有以下查询;
$t = $row['tenusr_FirstName'] . " " . $row['tenusr_LastName'];
在MySQL仪表板中返回正确的结果,但我不能在PHP中使用它,因为
db.tenusr_FirstName
返回查询的最后结果,而不是之前的结果。说实话,我不知道如何得到它们。我试过使用+--------+----------+------------------+---------------+----------------------+-------------------------+
: cli_ID : cli_Name : cli_AddressLine1 : cli_Town : cli_ContractManager : cli_BusinessDevelopment :
+-------------------------------------------------------------------------------------------------------+
: 1 : ACME : On a street : Makeuptington : 1 : 2 :
+--------+----------+------------------+---------------+----------------------+-------------------------+
+-----------+-----------------+-----------------+--------------+
: tenusr_ID : tenusr_Username : tenusr_LastName : tenusr_Email :
+--------------------------------------------------------------+
: 1 : Sam : Smithers : make@it.com :
+--------------------------------------------------------------+
: 2 : Tom : Watson : tom@fake.net :
+--------------------------------------------------------------+
并且它会抛出错误。
任何帮助将不胜感激。
def runRemoteFunc(event=None):
hostname = remoteEntry.get()
remoteFunc(hostname)
...
remoteButton = Button(..., command = remoteFunc)
...
app.bind('<Return>', remoteCommand)
我添加了表格 - top是客户表,第二是用户。
答案 0 :(得分:2)
PHP中不能包含具有相同名称的列。您只想选择所需的列,并使用AS
SELECT
cm.tenusr_Username AS contract_FirstName,
cm.tenusr_LastName AS contract_LastName,
bd.tenusr_Username AS business_FirstName,
bd.tenusr_LastName AS business_LastName
....
然后您可以使用
$t = $row['contract_FirstName'] . " " . $row['contract_LastName'];
答案 1 :(得分:1)
另一个答案也是对的。我离开了clients.*
,如果你需要,我会从客户端中选择所有行,但如果你不需要,我们应该省略它。
SELECT
clients.*, cm.FirstName as CMFirstName, cm.LastName as CMLastName, bd.FirstName as BDFirstName, bd.LastName as BDLastName
FROM
clients
INNER JOIN
tenantusers AS cm ON cm.tenusr_ID = clients.cli_ContractManager
INNER JOIN
tenantusers AS bd ON bd.tenusr_ID = clients.cli_BusinessDevelopment
ORDER BY cli_Name;
在PHP中
$bd = $row['BDFirstName'] . " " . $row['BDLastName'];
$cm = $row['CMFirstName'] . " " . $row['CMLastName'];
如果并非所有用户都有合同经理和业务开发人员,则应将INNER JOIN
更改为LEFT JOIN
,以便其中包含没有其中一个或两个的客户,或者不包含两者的客户。