SQL Natural Join和use子句

时间:2013-05-23 18:54:40

标签: mysql sql join jointable natural-join

所以我有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;

2 个答案:

答案 0 :(得分:0)

自然连接使用公共列名连接两个表,并使用using子句。其他联接使用on子句。

试试这个:

SELECT table1.data2
FROM table1 LEFT JOIN
     table2 
     on table1.nlm = table2.`#nlm`
WHERE table2.pid = 3;

答案 1 :(得分:0)

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

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

这也应该是一个内部联接,因为WHERE子句要求它在table2中找到一行。