Mysql 在检查两个不同表的用户名时,仅返回一个用户

Mysql 在检查两个不同表的用户名时,仅返回一个用户,mysql,Mysql,我有两张表格如下: 供应商: 供应商id,供应商pw 123456 zzzzz 647890 YYYY 客户: 客户号,客户号 00000 zzzzz 11111 YYYY 我已将表的id设置为唯一和主键。 运行以下查询后: $username=123456,$password=zzzz 从供应商、客户中选择*,其中(suppliers.supplier\u id='username'和suppliers.supplier\u pw='password')或(customers.customer

我有两张表格如下:

供应商:
供应商id,供应商pw
123456 zzzzz
647890 YYYY

客户:
客户号,客户号
00000 zzzzz
11111 YYYY

我已将表的id设置为唯一和主键。 运行以下查询后:

$username=123456,$password=zzzz

从供应商、客户中选择*,其中(suppliers.supplier\u id='username'和suppliers.supplier\u pw='password')或(customers.customer\u id='username'和customers.customer\u pw='password'

它返回id=123456的供应商的结果,也返回password=zzzz的客户的结果。 但我想让它只返回一个匹配id和密码的。 我应该在哪里更改查询

更新表结构:

供应商:

供应商id(主键,唯一)、供应商pw、供应商姓氏、供应商姓氏、供应商电子邮件(唯一)、供应商电话、公司名称(唯一)、公司地址、公司城市、公司州、公司邮编

顾客:


客户id(主键,唯一)、客户pw、客户姓氏、客户姓氏、客户电子邮件(唯一),客户电话,客户地址,客户城市,客户州,客户邮政编码

如果您想选择与用户名和密码输入匹配的数据,并且如果匹配发生,它们需要来自两个表,那么您可以使用

select 
supplier_id as id,
supplier_lastname as lastname,
supplier_firstname as firstname,
supplier_email as email ,
supplier_phone as phone,
'Supplier' as entity_name
from suppliers 
where suppliers.supplier_id = '$username' AND suppliers.supplier_pw = '$password'
union all
select
customer_id as id,
customer_lastname as lastname,
customer_firstname as firstname,
customer_email as email,
customer_phone as phone,
'Customer' as entity_name 
customers.customer_id = '$username' AND customers.customer_pw = '$password'

请注意,我已从两个表中选择了几列,并添加了别名。如果需要,您可以添加更多别名,但请确保两个查询具有相同的选择数,然后添加一个名为
entity\u name
的额外列,以告诉您行来自哪个表,以防您从两个表中都有匹配的数据。

如果要选择data与用户名和密码输入匹配,并且它们需要来自两个表如果匹配发生,那么您可以使用
union all
,但需要确保
select
在两个查询中的列数相同,最好是相同的名称,提供完整的表结构和所需的列。我已经更新了comp删除表结构