Bảng who
MySQL CHỌN TRƯỜNG HỢP KHI một cái gì đó sau đó trở về vô
wid--name-------father---mother
1----Daisy------David----Liza
2----Jenny------Joe------Judy
3----Meggy------Mike-----Manuela
4----Sarah------Joe------Judy
5----Chelsea----Bill-----Hillary
6----Cindy------David----Liza
7----Kelly------Joe------Judy
Bảng ages
aid---whoid---age
1-----1--------0
2-----2--------0
3-----3-------14
4-----4-------30
5-----5-------22
6-----6-------17
7-----1-------18
Tôi muốn rằng danh sách kết quả là:
id---name------age
1----Meggy-----14
2----Cindy-----17
3----Daisy-----18 (Selected data that bigger than 0)
4----Chelsea---22
5----Sarah-----30
6----Jenny-----30 (Her age is 0 on ages table and Sarah's age with same father and mother)
7----Kelly-----30 (No data on ages table and Sarah's age with same father and mother)
tôi đã cố gắng truy vấn rằng:
SELECT
*,
(CASE age
WHEN '0' THEN (
SELECT age
FROM ages a
LEFT JOIN who w
ON w.wid = a.whoid
WHERE
w.father = father
AND
w.mother = mother
ORDER BY a.age DESC LIMIT 1
)
ELSE age
END
) AS newage
FROM who
LEFT JOIN ages
ON wid = whoid
ORDER BY newage
Có vấn đề gì với điều đó?
Cảm ơn bạn. Điều này giải quyết vấn đề đặt hàng, nhưng vẫn có vấn đề với việc chọn tuổi chính xác. – baturalpdincdari
@baturalpdincdari: bí danh các bảng của bạn. – Quassnoi
Vậy đó. Cảm ơn bạn rất nhiều lần nữa. – baturalpdincdari