首页 > 解决方案 > 左连接与联合 [MYSQL]

问题描述

我有两个疑问。两者都工作正常:

SELECT * FROM newser t1 LEFT JOIN users t2 ON t1.userid = t2.usid WHERE t1.univer = '210310213053' LIMIT 1

第二个查询:

SELECT * FROM newser ORDER by RAND() LIMIT 8

联合这个:

SELECT * FROM newser WHERE univer = '210310213053' LIMIT 1) UNION (SELECT * FROM newser ORDER by RAND() LIMIT 8)

工作正常,但我想添加左连接:

(SELECT * FROM newser t1 LEFT JOIN users t2 ON t1.userid = t2.usid WHERE t1.univer = '210310213053' LIMIT 1) UNION (SELECT * FROM newser ORDER by RAND() LIMIT 8)

Dosent 工作... #1222 - 使用的 SELECT 语句具有不同的列数

你能帮我正确地做吗?

标签: mysqlleft-joinunion

解决方案


在联合查询中尽量不要使用SELECT *,键入您要选择的列,因为将来您可能会在这些表中添加新列,这样查询就会崩溃


推荐阅读