Нужна помощь с запросом MySQL
Поэтому я пытаюсь сделать несколько сложный запрос, и у меня возникли проблемы. Я структурировал это так, как это кажется наиболее логичным:
SELECT (intake.id, s_matters.id, s_calls.cid, s_events.id) AS id,
(intake.name, s_matters.casename, s_calls.name, s_events.subject) AS title
FROM intake, s_matters, s_calls, s_events
WHERE title LIKE '%mi%'
Это возвращает:
Код ошибки: 1241
Операнд должен содержать 1 столбец
Так что я знаю, что это как-то связано со структурой скобок, но я не знаю, как это сделать правильно.
3 ответа
Я подозреваю, что то, что требуется, лучше всего будет возвращено следующим:
SELECT id, name title, 'intake' table
FROM intake WHERE name LIKE '%mi%'
UNION ALL
SELECT id, casename title, 's_matters' table
FROM s_matters WHERE casename LIKE '%mi%'
UNION ALL
SELECT cid AS id, name title, 's_calls' table
FROM s_calls WHERE name LIKE '%mi%'
UNION ALL
SELECT id, subject title, 's_events' table
FROM s_events WHERE subject LIKE '%mi%'
Псевдоним может ссылаться только на один столбец. Если псевдоним предназначен для последнего столбца в каждом списке, сделайте это:
SELECT intake.id, s_matters.id, s_calls.cid, s_events.id AS id, intake.name,
s_matters.casename, s_calls.name, s_events.subject AS title
FROM intake, s_matters, s_calls, s_events
WHERE title LIKE '%mi%'
Также вам не хватает ON
пункты из ваших объединений. Что пытается выполнить запрос?
Не понятно, что вы пытаетесь сделать
ВЫБЕРИТЕ concat(потребление.id, s_matters.id, s_calls.cid, s_events.id) AS id, concat(потребление.name, s_matters.casename, s_calls.name, s_events.subject) AS название FROM потребление, s_matters, s_calls, s_events ГДЕ название НРАВИТСЯ '%mi%
Может быть, то, что вы хотели. И, как указывает redfilter, в ваших объединениях отсутствуют предложения ON.