Сложное соединение MySQL - невозможно выбрать несколько столбцов во второй таблице - PullRequest
0 голосов
/ 20 мая 2011

Я не могу понять, почему я не могу выбрать несколько столбцов во второй таблице. Вот мои таблицы:

Computers:
----------
id, cond, type

Images:
-------
id, foreignid, name, width, height, def

Вот мой выбор:

SELECT
    id, cond, type,
    (SELECT name, width, height FROM images WHERE foreignid = computers.id ORDER BY def DESC LIMIT 1) AS image
FROM computers

Это ошибка, которую я получаю:

Operand should contain 1 column(s)

Ответы [ 2 ]

2 голосов
/ 20 мая 2011

Вы пытаетесь сделать что-то подобное?

select c.id, c.cond, c.type, i.name, i.width, i.height from computers c
left join images i on i.foreignid=c.id
order by i.def desc limit 1

EDIT: Но условие соединения зависит от того, что именно вы хотите. Если вы хотите, чтобы все компьютеры имели изображения или не использовали

computers left join images

Если вы хотите, чтобы все изображения были компьютерными или нет

computers right join images

Если вы хотите, чтобы только компьютеры с изображениями и изображениями с компьютерами использовали

computers inner join images

Если вы хотите, чтобы все компьютеры и все изображения использовали

computer outer join images
0 голосов
/ 20 мая 2011
SELECT comp.id, comp.cond, comp.type, img.name, img.height, img.width FROM computers comp left join image img on img.foreignid = comp.id

Вернет компьютер со связанным изображением, если это то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...