我有一张名为accounts的桌子
我有一个名为
id
provider
type
account_name id - int(12)
provider -int(12)
type - int(12)
account_name - Varchar(25)我认为连接或子查询可以工作,但不能工作。我的目标是显示同时具有这两个type=2 and type=5 ORDER By account_name的提供程序
eg显示了同时销售房地产和贷款的公司
Select * from accounts WHERE type = 2 and type=5我知道上面的方法行不通,但这正是我所需要的心态。我很感谢大家的帮助,让这个工作。
mysql输出结果应该在一行中如下所示。
例如
提供商Account_Name1(此匹配2) Account_Name2(匹配5)强生房地产-强生贷款
发布于 2013-06-18 19:13:31
这应该查找同时具有id 2和5的提供程序:
select provider
from accounts
where id in (2,5)
group by
provider
having count(distinct id) = 2发布于 2013-06-18 20:06:21
select distinct acc2.provider,acc2.account_name,acc5.account_name
from accounts acc2 inner join accounts acc5 on acc2.provider=acc5.provider
where acc2.type = 2 and acc5.type = 5这有点假设不会有重复的provider/type组合。例如,一个提供者有多个具有相同type的行。事实上,如果数据符合该要求,则distinct不是必需的。
顺便说一句,这是一个有点奇怪的表格,尽管我不知道全部情况。这似乎是一个用于将提供者与帐户类型相关联的表。并且提供商和帐户类型的每个关联可以具有Account_Name。我认为用3个表来表示会更好。
TABLE Provider (
ID INT PK
Name VARHCAR(50)
)
TABLE AccountType (
ID INT
AccountType VARCHAR(50)
)
TABLE ProviderAccountType (
ProviderID PK FK
AccountTypeID PK FK
AccountName VARCHAR(50)
)https://stackoverflow.com/questions/17167405
复制相似问题