[英]How to sort perfectly a select from a mysql database
我的问题是关于从Mysql DB中提取。
在我的数据库中,我有来自计算机的清单处理。 这是我的数据库中的一行示例。
ID CMD PID PPID
1000 /usr/sbin/httpd 9260 12600
1001 /usr/sbin/httpd 9261 12600
1002 /usr/sbin/httpd 9262 12600
1003 /usr/sbin/httpd 9263 12600
1004 /usr/sbin/httpd 12600 50
好的,我只想选择以下行:
1004 /usr/sbin/httpd 12600 50
实际上我的代码PHP选择5行。
但是现在我想放一个php代码来选择它们之间不是由父进程创建的CMD。 在示例中,PPID为50的行是好行,而其父进程不在此处。
我真的不知道我能做什么,但这就是我的榜样。
SELECT ID, CMD
WHERE cmd LIKE %httpd% AND IF ppid IS NOT EQUAL TO OTHER ppid WHICH HAVE THE SAME cmd;
我希望你能帮助我。 抱歉,我的问题很复杂,我无法解释。
您必须在库存中找到没有父母的物品。 为此,您必须对具有父项的项目执行子查询。 这应该可以解决问题。 这也说明了独生子女的可能性。
SELECT i.*
FROM Inventory i
LEFT JOIN
(-- with parents in Inventory
SELECT k.PID
FROM Inventory j
JOIN Inventory k ON k.PPID = j.PID) l ON l.PID = i.PID
WHERE l.PID IS NULL
像这样吗?
SELECT ID, CMD
WHERE cmd LIKE %httpd%
GROUP BY ppid
HAVING COUNT(ppid) = 1
对表进行自我连接,如下所示:
SELECT i.ID, i.CMD,iPID,i.PPID from inventory i,inventory j WHERE i.PID <> j.PPID
在上面的示例中, inventory
是表名(假设)。
尝试这样:
SELECT ID, CMD WHERE cmd LIKE '%httpd%' GROUP BY cmd;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.