mysql两张表通过一张id查询另一张表id对应的name
时间: 2023-05-24 08:04:44 浏览: 1757
假设有两个表:表A和表B,表A中有字段id,表B中有字段id和name,需要通过表A中的id查询表B中对应的name。
可以使用以下SQL语句:
SELECT B.name FROM A JOIN B ON A.id = B.id WHERE A.id = 'xxx';
其中,'xxx'是要查询的id值。这条语句使用了JOIN(连接)命令,将表A和表B连接起来,并通过id字段进行匹配,最后在WHERE子句中指定id值进行查询。结果会返回表B中匹配到的name值。
相关问题
mysql查询中多个字段与另一张表里的字段形成对应关系怎么完善sql
如果您需要将一个表中的多个字段与另一个表中的字段建立对应关系,可以使用 JOIN 语句。下面是一个简单的例子:
假设您有两个表:`customers` 和 `orders`。`customers` 表包含客户的姓名和 ID,而 `orders` 表包含订单的 ID、客户 ID 和订单日期。您想要查询每个订单的详细信息,并添加客户姓名。您可以使用以下 SQL 查询语句:
```
SELECT orders.id, orders.order_date, customers.name
FROM orders
JOIN customers ON orders.customer_id = customers.id;
```
在这个例子中,`JOIN` 语句用于将 `orders` 表和 `customers` 表连接起来,并且使用 `ON` 语句指定了两个表之间的关联条件,即 `orders.customer_id` 等于 `customers.id`。然后,通过查询语句选择要返回的字段:`orders.id`、`orders.order_date` 和 `customers.name`。这将返回一个包含每个订单 ID、订单日期和客户姓名的结果集,这些信息都来自于两个表中的相关字段。
mysql 通过判断表A的name是否包含于表B的name,将表B的id赋值给表A的b_id
可以使用如下的 SQL 语句来实现:
```
UPDATE table_a a
INNER JOIN table_b b ON INSTR(b.name, a.name) > 0
SET a.b_id = b.id;
```
其中,`INSTR` 函数用于判断字符串是否包含另一个字符串,如果包含,则返回对应的位置,否则返回 0。`INNER JOIN` 用于连接两张表,`SET` 语句用于更新表 A 的 b_id 字段。
阅读全文