我有以下從3個表中抽取的查詢。每行最終會有1個家庭,但每個家庭都有多個孩子。我希望能夠顯示家庭排中的所有兒童年齡。我想打開另一個連接/查詢,但認爲有一個更聰明的方法。在1行內顯示多行數據MySQL PHP
查詢:
SELECT
families.*, job.*, children.*, families.first_name AS fam_firstname, children.first_name AS child_firstname
FROM job
LEFT OUTER JOIN families ON job.fam_id = families.fam_id
LEFT OUTER JOIN children ON families.fam_id = children.fam_id
WHERE
job.published = 2
GROUP BY job.job_id
ORDER BY job.created_on DESC
循環:
if ($result = $mysqli->query($query)) {
$from = new DateTime($row['dob']);
$to = new DateTime('today');
while ($row = $result->fetch_assoc()) {
echo '<tr>';
echo '<td>' .$row['fam_firstname']. '</td>';
echo '<td>' .$row['last_name'].'</td>';
/* Looking to list all children ages. Separate by comma or break */
echo '<td>' . $from->diff($to)->y .'</td>';
echo '</tr>';
}
$result->free();
}
所需的輸出:
Family First Name | Family Last Name | Child 1 Age, Child 2 Age
這真棒,謝謝。給它一個鏡頭會讓你知道它是怎麼回事 – Klav
@Klav,我已經在我的回答中添加了一個爲你的查詢指定的代碼實現,請參閱上面的...不要忘記用「family_name」命令你的查詢,在爲了正常工作 –
考慮到mysql已經提供了這個功能(請參閱我的答案),不知道爲什麼你想在php中這樣做... –