SELECT * FROM table1
LEFT JOIN table2
ON table1.id = table2.table1_id
WHERE table1.id = 1
Run Code Online (Sandbox Code Playgroud)
我需要只连接表2中的一列,比如first_name.我怎样才能做到这一点?
Nul*_*ion 58
假设您的意思是"从表2中选择一列":
SELECT table1.*, table2.first_name
FROM table1
LEFT JOIN table2
...
Run Code Online (Sandbox Code Playgroud)
接受的答案是正确的答案,但是当表位于两个不同的数据库中时,我遇到了一个奇怪的错误:
假设 table1 在 database1 中,table2 在 database2 中。最初我试过这个:
SELECT *, database2.table2.first_name
FROM table1
LEFT JOIN database2.table2
ON database1.table1.id = database2.table2.table1_id
WHERE table1.id = 1
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我从 PHP PDO 尝试这个查询,没有错误,但结果包含来自 database2.table2 的所有列(预计只有 first_name 列)。
但是,如果我从 phpmyadmin 尝试了相同的查询,则会出现 sintax 错误:
表“database2.table1”不存在
因此,为了解决这个问题,所有数据库都需要像这样隐式指定:
SELECT database1.table1.*, database2.table2.first_name
FROM database1.table1
LEFT JOIN database2.table2
ON database1.table1.id = database2.table2.table1_id
WHERE database1.table1.id = 1
Run Code Online (Sandbox Code Playgroud)
获取您的原始代码并将 * 替换为 table1.*, table2.YourChosenColumn
SELECT table1.*, table2.YourChosenColumn
FROM table1 LEFT JOIN table2
ON table1.id = table2.table1_id
WHERE table1.id = 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46105 次 |
| 最近记录: |