Привет, у меня есть 2 таблицы в базе данных MySQL
status
id, name, date, status
1 server1 datum 0
2 server2 datum 999
3 server3 datum 999
4 server4 datum 0
cis
id, ,url
0 img/offline.png
1 img/server1.png
2 img/server2.png
3 img/server3.png
4 img/server4.png
999 img/online.png
Я хочу выбрать идентификатор и статус из статуса, и я хочу заменить как server_id a, так и статус URL-адресом из cis. Но я не знаю, возможно ли это сделать, или мне нужно создать третью таблицу для онлайн / офлайн-URL?
Я хочу присоединиться к таблицам, чтобы выбор возвращался как это
id, status
img/server1.png, img/offline.png
img/server2.png, img/online.png
img/server3.png, img/online.png
img/server4.png, img/offline.png
Ах, извините, это не server_id, просто идентификатор, мой плохой.
Вы запрашиваете запрос JOIN, чтобы вы могли видеть id, status и url в одной строке? Или вы спрашиваете, нужно ли вам создать новую таблицу, чтобы физически хранить их вместе? Если второе, то да (конечно!).
Тогда редактировать вопрос и поправь !!!
Это то, что я пытаюсь делать весь день, но ничего из того, что я придумал, не работает.
выберите s.id, s.name, s.date, s.status, c1.url как serverurl, c2.url как statusurl из status s left join cis c1 на s.id = c1.id left join cis c2 на s. status = c2.id
Тогда, если бы вы прочитали ссылку, которую я предоставил в моем первом комментарии, вы бы знали, что нужно отредактировать вопрос и поместить этот запрос в вопрос, чтобы показать свою попытку, но я думаю, это было слишком много, чтобы прочитать это, включая эту маленькую жемчужину: Что делать дальше: Если мы приложили усилие, мы должны немедленно отредактируйте наш вопрос, чтобы подробно описать, что мы сделали.






Судя по вашим комментариям, вы пробовали следующий запрос:
select s.id,s.name,s.date,s.status,c1.url as serverurl,c2.url as statusurl
from status s left join cis c1 on s.id=c1.id left join cis c2 on s.status=c2.id
Это возвращает правильный набор результатов, но если я понимаю, что вы ищете, вам нужен этот запрос:
SELECT c1.url AS id, c2.url AS status FROM `status` s
LEFT JOIN `cis` c1 ON s.id = c1.id
LEFT JOIN `cis` c2 ON s.status = c2.id
c1.url имеет псевдоним id, а c2.url - status.
Трудно выбрать
server_idиз таблицыstatus, когда в ней нет такого столбца.