Я пытаюсь объединить одну таблицу в другую таблицу на основе заданного значения. Но это не так просто, как ПРИСОЕДИНЕНИЕ. (Я нашел много примеров JOIN в Интернете, но таких нет. Кроме того, я не невероятно хорош в запросах DB.)MySQL Merge Table B в таблицу A на основе значений в строке таблицы B
Для простого примера того, что я пытаюсь выполнить, скажем, я запускаю компьютерный магазин и продавать несколько компьютеров нескольким людям. По какой-то причине эти машины периодически регистрируются со мной, и я хочу знать, у кого у меня есть машина, которая в настоящее время отключена. Однако, если у них есть хотя бы 1 машина в Интернете, я НЕ хочу видеть ЛЮБОЙ из машин, которые у них есть, которые либо онлайн, либо офлайн.
Мой запрос до сих пор что-то вроде этого:
SELECT *
FROM Computers
LEFT JOIN Computers_On_Customers ON Computer_ID = Computers.ID
LEFT JOIN Customers ON Computers_On_Customers.Customer_ID = Customers.ID
WHERE Computers.Currently_Online LIKE "0"
Однако, если у клиента есть 2 компьютера, один из каждого состояния, он будет показывать 1 компьютер, когда я хочу, чтобы показать ни. (Потому что один из них в настоящее время не работает, и поэтому меня не волнует онлайновый.) Как я могу это сделать?
Вот грубый визуальное приближение моей базе данных:
Customers:
ID Other Stuff
Computers_On_Customers
ID Customer_ID Computer_ID
Computers:
ID Currently_Online
Любая помощь будет принята с благодарностью.
Все еще борются? Рассмотрите возможность предоставления надлежащих DDL (и/или sqlfiddle) ВМЕСТЕ С ЖЕСТКОЙ РЕЗУЛЬТАТОМ – Strawberry
Спасибо за помощь, ребята! Все 3 вопроса интересны и поставили меня на пути, которые кажутся хорошими. Я не уверен, какой ответ - «один истинный ответ», но я обновлю это, когда у меня его будет. Еще раз спасибо! – Dwebtron