0

所以我有 2 个包含以下数据的表

*where a star is a primary key.
*and a # is a unique key.

表格1

╔══════╦═══════╦════════╗
║ #nlm ║ data2 ║ *data3 ║
╚══════╩═══════╩════════╝

表 2

╔══════╦═════╗
║ *pid ║ nlm ║
╚══════╩═════╝

目标是在我知道 pid 时获取 data2。我已经尝试过了,但失败得很惨。

 SELECT data2 FROM table1 LEFT JOIN table2 USING nlm WHERE pid = 3;
4

2 回答 2

0

自然连接使用通用列名连接两个表,并且它使用using子句。其他联接使用该on子句。

尝试这个:

SELECT table1.data2
FROM table1 LEFT JOIN
     table2 
     on table1.nlm = table2.`#nlm`
WHERE table2.pid = 3;
于 2013-05-23T18:57:33.883 回答
0

USING子句要求列名放在括号中:

SELECT data2 FROM table1
INNER JOIN table2 USING (nlm)
WHERE pid = 3

这也应该是一个 INNER JOIN,因为该WHERE子句要求它在table2.

于 2013-05-23T19:21:05.140 回答