我有一个关于Mysql的表,其中有自引用父/子记录:
myTable
id | parent_id | text_1 | text_2
我需要使用此伪代码进行查询:
SELECT * FROM myTable WHERE parent_id=-1
AND IT HAS AT LEAST ONE CHILD
AND text_1 != 'something'
AND child.text_2 != 'somethingElse'
这里并且它至少有一个孩子意味着:至少有一行,它的parent_id等于你找到的行的id。
MySql中此伪代码的转换是什么。 Laravel eloquent的查询也没问题。
答案 0 :(得分:1)
要查看某个项目是否有子项,请在父/子关系中将该表连接到自身。
SELECT
*
FROM myTable a
LEFT JOIN myTable b
ON a.id = b.parent_id
WHERE (NOT b.id IS NULL) AND
a.id = -1 AND
a.text_1 <> 'something' AND
b.text_2 <> 'somethingElse'