My schema:  id:int | post_hash:str | post_body: str | is_op: tinyint(1) | parent_id:int  1 | 'dddba11f43d90117b01' | 'test post' | 1 | Null   2 | Null                  | 'test reply'| 0 | 1   This is to store forum posts and replies. How can I select post_hash and all its child posts specified by parent_id? To clarify, the idea is something like:  SELECT p.id FROM posts p WHERE post_hash = ? or parent_id = p.id   where p.id is the result of the select. It's self-referential so a subquery or join will be needed but I'm not sure how to go about this one.
Assume you have a flat table that stores an ordered tree hierarchy:  Id   Name         ParentId   Order  1   'Node 1'            0      10  2   'Node 1.1'          1      10  3   'Node 2'            0      20  4   'Node 1.1.1'        2      10  5   'Node 2.1'          3      10  6   'Node 1.2'          1      20   Here's a diagram, where we have [id] Name.  Root node 0 is fictional.                          [0] ROOT                           /    \                [1] Node 1          [3] Node 2               /       \                   \     [2] Node 1.1     [6] Node 1.2      [5] Node 2.1           /            [4] Node 1.1.1   What minimalistic approach would you use to output that to HTML (or text, for that matter) as a correctly ordered, correctly indented tree?   Assume further you only have basic data structures (arrays and hashmaps), no fancy objects with parent/children references, no ORM, no framework, just your two hands. The table is represented as a result set, which can be accessed randomly.   Pseudo code or plain English is okay, this is purely a conceptional question.  Bonus question: Is there a fundamentally better way to store a tree structure like this in a RDBMS?    EDITS AND ADDITIONS  To answer one commenter's ('s) question: A root node is not necessary, because it is never going to be displayed anyway. ParentId = 0 is the convention to express "these are top level". The Order column defines how nodes with the same parent are going to be sorted.  The "result set" I spoke of can be pictured as an array of hashmaps (to stay in that terminology). For my example was meant to be already there. Some answers go the extra mile and construct it first, but thats okay.  The tree can be arbitrarily deep. Each node can have N children. I did not exactly have a "millions of entries" tree in mind, though.  Don't mistake my choice of node naming ('Node 1.1.1') for something to rely on. The nodes could equally well be called 'Frank' or 'Bob', no naming structure is implied, this was merely to make it readable.  I have posted my own solution so you guys can pull it to pieces.
Reference label with included file and relaxed clearpage I am running into a rather weird error that apparently originates from the combination of \include, \let\clearpage\relax and a referenced label after a page break.  In this particular example, the label mylabel defined in the listing cannot be referenced anymore when the reference and the label are close enough to a page break.  The MWE consists of two files, the main-file and an included file. I am using the \let\clearpage\relax command to . The error does not occur if the file is \input instead of \included.  \documentclass[11pt,twoside]{book} %  \usepackage[utf8]{inputenc} % Enoding \usepackage[english]{babel} % Language \usepackage{listings} \usepackage{forloop}  \begin{document} \begingroup \let\clearpage\relax  \include{includedfile} % changing include for input would work  \endgroup \end{document}   Included file:   \newcounter{ct} \forloop{ct}{1}{\value{ct} &lt; 40}% {%     .\\ }  Listing \ref{mylabel}.  \begin{lstlisting}[caption=somecaption, label=mylabel] some code; \end{lstlisting}   Running this example will have an output where the label cannot be referenced (even after multiple runs):    Now, one solution is to use \input as mentioned earlier but I am rather interested in why this happens. Does the \clearpage command fulfil an important function for references to work? And can the error be avoided without removing \let\clearpage\relax while using \include?  EDIT: I just found  with the same issue (though it does not have a definite answer). I was working quickly, (making mistakes), and suddenly rotation and scale transforms stopped working. I think I hit some shortcut or button by accident. Translate still works though. I checked that the transforms weren't locked and such, to no avail. What could be the cause? Why is Earth's gravity stronger at the poles? Many sources state that the Earth's gravity is stronger at the poles than the equator for two reasons:   The centrifugal "force" cancels out the gravitational force minimally, more so at the equator than at the poles. The poles are closer to the center due to the equatorial bulge, and thus have a stronger gravitational field.   I understood the first point, but not the second one. Shouldn't the gravitational force at the equator be greater as there is more mass pulling the body perpendicular to the tangent (since there is more mass aligned along this axis)? What do you call the grouping of numbers based on the cardinality of digits in the square they produce? Shoot, Shoot At I have a question about the difference between the verb "shoot" and "shoot at":          Police shot the suspect.     Police shot at the suspect.        Are they just the same? Why are heatmaps on qgis 2.8.1 produced in the wrong CRS? I noticed that the heatmap calculation on the new upgrade version of qgis is given the raster map without any coordinate system.   Have you got the same problem? I want to work with unsigned 8-bit variables in C++.  Either unsigned char or uint8_t do the trick as far as the arithmetic is concerned (which is expected, since AFAIK uint8_t is just an alias for unsigned char, or so the debugger presents it.  The problem is that if I print out the variables using ostream in C++ it treats it as char.  If I have:  unsigned char a = 0; unsigned char b = 0xff; cout &lt;&lt; "a is " &lt;&lt; hex &lt;&lt; a &lt;&lt;"; b is " &lt;&lt; hex &lt;&lt; b &lt;&lt; endl;   then the output is:  a is ^@; b is 377   instead of   a is 0; b is ff   I tried using uint8_t, but as I mentioned before, that's typedef'ed to unsigned char, so it does the same.  How can I print my variables correctly?  Edit: I do this in many places throughout my code.  Is there any way I can do this without casting to int each time I want to print? What are Zombies and what causes them? Are there Zombie processes and Zombie objects? Is the following conjecture true?     Given an $n&gt;1$ and a $k$ such that $0&lt;k&lt;n$ then $\gcd\left(\binom{n}{k}, n\right)&gt;1$   This was a question asked in my old Number Theory course that I recently remembered. It was posed after we learned that $p\mid\binom{p}{k}$ for $0&lt;k&lt;p$. We never resolved it either way. I expect it to be true and have an elegant answer, but I haven't been able to prove it. Changing my iTunes account details Is "gift" accepted as a verb? I have always argued adamantly, as long as the issue has been around, that gift should never be used as a verb. However, someone whose English knowledge I quite respect disagrees.  I’ve done some searching and I haven’t found a consensus; should gifting be shunned? Does an Indian citizen need a transit visa in Australia? Indian passport holder. Do I need transit visa in Sydney? Conjugate class in the dihedral group List all the conjugate classes in the dihedral group of order $2n$ and verify the class equation.  The dihedral group is generated by two elements $r$ and $s$.   The order of $r$ is two since $r^2=e$ and $s$ is $n$ since $s^n = e$. And I know all elements can be produced as either $s^k$ or $rs^k$. How can I list all the conjugacy class? What does "in spades" mean? What does "in spades" mean, for example in the following sentence:     demand and love are both there in spades ...   I guess "in spades" means "on cards" or "on the table" or exist? "States Party to" or "State Parties to" or "States parties to"? When discussing a treaty or international agreement, which is correct?  "There are 100 states party to the treaty." (for example, as used )  Or:  "There are 100 state parties to the treaty." (for example, as used )   Or: "There are 100 states parties to the treaty."  (for example, as used ) How to zip a whole folder using PHP How to prove that a simple graph having 11 or more vertices or its complement is not planar? System settings is missing System settings is missing. I tried reinstall it as it mentioned , but it seems to be installed and deactivated. This problem occurred when I installed Elementary desktop environment and uninstalled it afterwards. I'm trying to prove that the rationals are not the countable intersection of open sets, but I still can't understand why   $$\bigcap_{n \in \mathbf{N}} \left\{\left(q - \frac 1n, q + \frac 1n\right) : q \in \mathbf{Q}\right\}$$   isn't a counter-example. Any ideas? Thanks! Add spanish spell check android studio