31-10-2008, 10:18
|
מנהל
|
|
חבר מתאריך: 26.07.08
הודעות: 6,473
|
|
בוודאי!
תאחד בין השאילתות בעזרת UNION בצורה הזו:
קוד:
SELECT post_id, label_id FROM tbl
WHERE label_id IN (1,2)
GROUP BY post_id
HAVING COUNT(*)=2
UNION
SELECT post_id, label_id FROM tbl
WHERE label_id IN (1,3)
GROUP BY post_id
HAVING COUNT(*)=2
רעיון אחר הוא השתמשות ב-SUM בפיסקת ה-HAVING
קוד:
SELECT post_id, label_id FROM tbl
WHERE label_id IN (1,2,3)
GROUP BY post_id
HAVING SUM(label_id)=4 OR SUM(label_id)=3
אבל השימוש ב-SUM טומן לנו פח: אם אתה רוצה לחפש label_id שהם 2,4 או 1,3 אז הסכום של שני המספרים 2,3 והסכום של שני המספרים 1,4 יהיה 5, כך שהשאילתא לא אמינה לחלוטין...
השימוש ב-UNION נראה לי בטוח יותר, אבל אנ מקוה שבשאילתא האחרונה הראתי לך איזשהו כיוון חשיבה נוסף...
|