Сначала проверьте этот код. Мне кажется, это должно работать для меня, но это не так! (Сюрприз!)
Во всяком случае, это то, что я попробовал первым:
SELECT
Status as status,
Address as ip,
PCName as pc_name,
(Numbers.Phone = 'CPU/' + PCName) as cpu_contact,
(Numbers.Phone = 'PC/' + PCName) as pc_contact,
(Numbers.Phone = 'LOGIN/' + PCName) as login_contact,
FROM IPAddress
WHERE $where --Generated In code
JOIN Numbers
ON ('CPU/' + PCName = Numbers.Phone)
OR ('PC/' + PCName = Numbers.Phone)
OR ('LOGIN/' + PCName = Numbers.Phone)
Так что я хочу, чтобы некоторые логические вычисляемые поля и объединяться в аналогичных условиях. Я также хотел бы, чтобы результат сворачивался до отдельных строк. Например, я думаю, что текущая установка будет делать что-то вроде этого:
status ip cpu_contact pc_contact login_contact
-----------------------------------------------
foo bar true false false
foo bar false true false
foo bar false false true
И, очевидно, я бы предпочел
status ip cpu_contact pc_contact login_contact
-----------------------------------------------
foo bar true true true
Есть идеи? Редизайн базы данных не вариант. Если бы это было так, я бы сделал это: -)