Mysql 如何在sql中从sql查询结果中填充数据
我有一个sql查询Mysql 如何在sql中从sql查询结果中填充数据,mysql,sql,sql-server,tsql,Mysql,Sql,Sql Server,Tsql,我有一个sql查询 SELECT MenuID, Text, ParentID, Refcode FROM Menu E1 WHERE E1.RefCode IN (0,50,51,60,63,57) 它将生成结果集 MenuID Text ParentID Refcode ----------- ------------------
SELECT MenuID,
Text,
ParentID,
Refcode
FROM Menu E1
WHERE E1.RefCode IN (0,50,51,60,63,57)
它将生成结果集
MenuID Text ParentID Refcode
----------- -------------------------------------------------- ----------- ----------
1 Product NULL 0
2 Applications NULL 0
3 Document NULL 0
4 Support NULL 0
6 Background 1 0
7 Details 1 50
8 Mobile Device 2 51
12 Performance Tests 2 0
15 FAQ 4 57
18 InternetRestrictions 6 60
21 Modem Results 12 63
我需要另一个减少结果的查询,即我需要删除所有没有任何子项的项,因此在预期结果中,必须删除menuid为3的项,因为它没有任何子项,如何使用对第一个查询结果的另一个查询或更改第一个查询来实现此结果集您可以使用
EXISTS
:
SELECT Menuid,
Text,
Parentid,
Refcode
FROM Menu E1
WHERE E1.Refcode IN ( 0, 50, 51, 60, 63, 57 )
AND EXISTS
(
SELECT 1 FROM Menu E2
WHERE E2.Parentid = E1.Menuid
)
使用具有不同连接的连接:
SELECT DISTINCT
E1.Menuid,
E1.Text,
E1.Parentid,
E1.Refcode
FROM Menu E1
JOIN Menu E2 ON E2.Parentid = E1.Menuid
WHERE E1.Refcode IN ( 0, 50, 51, 60, 63, 57 )
SQL的味道是什么?