Nếu tôi hiểu đúng, điều này sẽ làm những gì bạn cần:
$result = mysql_query("SELECT (specName, (IF EXISTS (SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1))) FROM specialities s;");
while (list($spec, $checked) = mysql_fetch_array($result)) {
// Do your outputting here.
}
Chỉnh sửa
Theo yêu cầu của bạn, tôi sẽ tiếp tục và giải thích truy vấn. Phần có thể khiến bạn bối rối là truy vấn con này:
(IF EXISTS (SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1))
IF EXISTS
yêu cầu MySQL trả về TRUE hoặc FALSE nếu phần ngay sau nó 'tồn tại' (chứa một kết quả). SELECT * FROM user_specialty us WHERE s.id = us.sid AND us.uid = '$id' LIMIT 1
chỉ cần yêu cầu MySQL tìm một hàng trong user_specialty
nơi s.id = us.sid
(ID đặc biệt phù hợp) và us.uid = '$id'
(ID là của người dùng).