从LEFT JOIN上的表中仅选择一些列

Psy*_*che 15 mysql join

是否可以从LEFT JOIN上的表中仅选择一些列?

Vot*_*ple 34

当然.只需列出要在任何查询中选择的列:

SELECT table1.column1, table1.column2, table2.column3
FROM table1
LEFT JOIN table2 ON (...)
Run Code Online (Sandbox Code Playgroud)

请注意,我已在所有列中包含table1.table2.前缀,以确保在两个表中都存在具有相同名称的字段时不存在任何歧义.

  • 可能值得补充一点,最好在它们前面添加表格,例如table1.column1,table2.column2等,这样可以防止歧义错误,只是为了一般的可读性. (3认同)

jla*_*sey 24

*在 select 语句中将a 添加到该表中,用逗号与其他列分开:

SELECT table1.*, table2.col2, table2.col3
FROM table1
LEFT JOIN table2
ON...
Run Code Online (Sandbox Code Playgroud)

来源:https : //stackoverflow.com/a/3492919/3417198

  • 终于找到了我一直在寻找的答案。当然,可以指定每个嵌套选择中的每一列,但通常情况下,您需要级联 5 个或更多子查询,以便将不同的列附加到主临时表中,并且重写和跟踪中的所有列是一件非常痛苦的事情。每个子查询。这解决了它 (2认同)

fla*_*yto 9

如果你想要一些table1的列和一些table2的列,你会做类似的事情

SELECT t1.col1, t1.col2, t1.col3, t2.col1, t2.col2, t2.col3
FROM table1 t1
LEFT JOIN table2 t2
ON...
Run Code Online (Sandbox Code Playgroud)