这是将单个表分成两部分的结果:
Table users:
user_id (pk, ai)
email
password
last_login
Table data:
user_id (fk to users.user_id)
data_1
data_2
Run Code Online (Sandbox Code Playgroud)
在只有一个表时选择单个记录:
SELECT users.email, users.password, data.data_1, data.data_2
FROM users,data
WHERE users.email='$user_email' AND users.user_id=data.user_id";
Run Code Online (Sandbox Code Playgroud)
如何从两个表中获取所有由users.user_id = data.user_id连接的行的记录?
Row1: email, password, data_1, data2
Row2: email, password, data_1, data2
Row3: email, password, data_1, data2
Row4: email, password, data_1, data2
...
Run Code Online (Sandbox Code Playgroud)
VMa*_*Mai 18
使用显式join语法可以帮助您.将您的查询重写为:
SELECT
users.email, users.password, data.data_1, data.data_2
FROM
users
INNER JOIN
data
ON
users.user_id=data.user_id
WHERE
users.email='$user_email'
Run Code Online (Sandbox Code Playgroud)
并获取没有WHERE条件的所有行:
SELECT
users.email, users.password, data.data_1, data.data_2
FROM
users
INNER JOIN
data
ON
users.user_id=data.user_id
Run Code Online (Sandbox Code Playgroud)
它分离了关注点:连接表的条件以及限制结果集的条件.
你试过这个吗?
SELECT users.email, users.password, data.data1, data.data2
FROM users,data
WHERE users.user_id=data.user_id
Run Code Online (Sandbox Code Playgroud)
或这个?
SELECT users.email, users.password, data.data1, data.data2
FROM users inner join data on users.user_id=data.user_id
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50956 次 |
| 最近记录: |