我有一张如下所示的表格。SQL - 仅当条件匹配时才选择
ID NAME
1 JOHN
2 JANE
3 JACK
在一个简单的select语句中,如何从表中查询JOHN和JANE?
条件是:
i。结果必须返回JOHN和JANE。
ii。如果从表中删除了JOHN或JANE,它只会返回空结果。
我有一张如下所示的表格。SQL - 仅当条件匹配时才选择
ID NAME
1 JOHN
2 JANE
3 JACK
在一个简单的select语句中,如何从表中查询JOHN和JANE?
条件是:
i。结果必须返回JOHN和JANE。
ii。如果从表中删除了JOHN或JANE,它只会返回空结果。
你可以使用GROUP BY/HAVING
,确保有2场比赛:
SELECT Name
FROM T
WHERE Name IN ('JOHN', 'JANE')
AND EXISTS
( SELECT 1
FROM T
WHERE Name IN ('JOHN', 'JANE')
HAVING COUNT(DISTINCT Name) = 2
);
或者你可以使用一个自联接:
SELECT a.Name
FROM T a
INNER JOIN T b
ON a.Name != b.Name
WHERE a.Name IN ('JOHN', 'JANE')
AND b.Name IN ('JOHN', 'JANE');
Examples on SQL Fiddle (MySQL)
试试这个:
SELECT
GROUP_CONCAT(`NAME`) as names
FROM `TABLE`
WHERE 1
AND NAME IN ('JOHN','JANE')
HAVING names= 'JOHN,JANE'
JohnAndJaneBothExist()
2.
SELECT * FROM TABLENAME
WHERE
JohnAndJaneBothExist and
Name In ('John', 'Jane')
这厕所ks可疑地像功课 –
-1没有证据显示你已经尝试过什么,你遇到什么麻烦等等。没问题要求做家庭作业的问题,但至少在你要求你的工作人员为你做这件事之前,自己有一个破解。 – Sepster
请显示一些努力...你有什么尝试? –