mysql - 数据库简单查询问题
阿神
阿神 2017-04-17 13:40:24
0
3
702

查询一张表中table_a中,有aid, bid, 查询记录,存在所有成对的记录,例如 aid = 10, bid = 11,如果存在aid = 11, bid = 10,就把这两条记录同时查出来,不存在则跳过。该怎么写呢?

select * from table_a where (aid, bid) in (select bid, aid from table_a )

这样写正确嘛?如果不对该怎么写呢?

阿神
阿神

闭关修行中......

Antworte allen(3)
黄舟

很简单:

SELECT T.aid, T.bid
FROM table_a T
INNER JOIN table_a S
ON T.aid = S.bid
AND T.bid = S.aid

或者

SELECT T.aid, T.bid
FROM table_a T, table_a S
WHERE T.aid = S.bid
AND T.bid = S.aid

也一样。

洪涛

怎么判断aid bid是不是成对?

Peter_Zhu
SELECT * FROM `table_a` WHERE concat ((aid*bid),'_',(aid+bid)) in (
    SELECT concat((aid*bid),'_',(aid+bid)) 
    FROM `table_a` 
    GROUP BY (aid*bid),(aid+bid) 
    HAVING count(id)>1
)

不知道这样子行不行(不行就当作是一种思路吧)

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!