我无法弄清楚为什么我不能在第二个表中选择多个列。这是我的表格:
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)
答案 0 :(得分:2)
你想做这样的事吗?
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
编辑: 但是join子句取决于你想要什么。 如果您想要所有计算机,请将图像与否使用
computers left join images
如果您想要所有图像,请使用计算机或不使用
computers right join images
如果您只想使用带有计算机图像和图像的计算机
computers inner join images
如果您想使用所有计算机和所有图像
computer outer join images
答案 1 :(得分:0)
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
如果您正在寻找的话,将返回一台计算机及其相关图像。