如何在一个表结果中统一两个select语句?
例如在第一个表中,我希望得到一切,但是在我的第二个表上我只想要一个等于我的第二个表的corel_id和id的corel名称?
SELECT *
FROM garage
UNION
SELECT c.name
FROM corel as c
WHERE EXISTS (SELECT 1 FROM garage as g WHERE c.id = g.corel_id
我试图执行此操作,但这不起作用。这是正确的吗?或者有更好的方法吗?
抱歉新手在这里。
更新预期结果:
答案 0 :(得分:3)
尝试一下:
SELECT g.*, c.name
FROM garage g
LEFT JOIN corel c
ON c.id = g.corel_id
匹配数据库中的两个表称为 join 。内部联接(默认情况下)仅返回与两个表匹配的行。
左连接返回第一个表中的所有行,无论它们是否与第二个表匹配,以及第二个表中匹配的任何数据。右连接执行逆操作,仅返回第二个表中的不匹配数据。还有完整的联接,无论匹配如何都会返回所有数据。
答案 1 :(得分:1)
您需要一个连接语句。连接根据where子句中的匹配条件将多个表中的列放在一起。
union需要2个或更多查询才能拥有相同的列。联合将行集合放在一起或多行。
答案 2 :(得分:-1)
你试过这个吗?
SELECT * FROM garage as g LEFT JOIN Select 1 FROM corel as c WHERE g.id = c.id