mysql - 无法按名称连接两个表行 MySQL
问题描述
我正在尝试加入表格并获得与“名称”匹配的输出
我有 2 个表api_log_2和api_security_2
TABLE 1 = api_log_2
----------------------------------
|id |name |email |
---------------------------------
|101 |john test |j@gm.io |
|102 |gary rest |g@gm.io |
|102 |megh west |m@gm.io |
----------------------------------
TABLE 2 = api_security_2
----------------------------------
|vt |name |ipn |
----------------------------------
|x12 |john test |1245774 |
|e34 |gary rest |2145876 |
|h76 |megh west |9245228 |
----------------------------------
我的 SQL 查询
SELECT
api_log_2.id,
api_security_2.vt,
api_security_2.name,
api_security_2.ipn,
api_log_2.email
FROM
api_log_2,
api_security_2
WHERE
api_log_2.name = api_security_2.name
AND
api_security_2.name = 'john test';
现在,问题是当我运行这个查询时,我没有得到结果。
编辑:我的名字之间有一个空格
解决方案
使用正确的 JOIN 可以帮助您获得想要的结果。
别名也有帮助,减少输入。
CREATE TABLE api_log_2 ( `id` INTEGER, `name` VARCHAR(4), `email` VARCHAR(7) ); INSERT INTO api_log_2 (`id`, `name`, `email`) VALUES ('101', 'john', 'j@gm.io'), ('102', 'gary', 'g@gm.io'), ('102', 'megh', 'm@gm.io');
CREATE TABLE api_security_2 ( `vt` VARCHAR(3), `name` VARCHAR(4), `ipn` INTEGER ); INSERT INTO api_security_2 (`vt`, `name`, `ipn`) VALUES ('x12', 'john', '1245774'), ('e34', 'gary', '2145876'), ('h76', 'megh', '9245228');
SELECT al.id, ase.vt, ase.name, ase.ipn, al.email FROM api_log_2 al INNER JOIN api_security_2 ase ON al.name = ase.name WHERE ase.name = 'john';
编号 | vt | 姓名 | ipn | 电子邮件 --: | :-- | :--- | ------: | :-------- 101 | x12 | 约翰 | 1245774 | j@gm.io
db<>在这里摆弄
CREATE TABLE api_log_2 ( `id` INTEGER, `name` VARCHAR(200), `email` VARCHAR(7) ); INSERT INTO api_log_2 (`id`, `name`, `email`) VALUES ('101', 'john test', 'j@gm.io'), ('102', 'gary rest', 'g@gm.io'), ('102', 'megh west', 'm@gm.io');
CREATE TABLE api_security_2 ( `vt` VARCHAR(3), `name` VARCHAR(200), `ipn` INTEGER ); INSERT INTO api_security_2 (`vt`, `name`, `ipn`) VALUES ('x12', 'john test', '1245774'), ('e34', 'gary rest', '2145876'), ('h76', 'megh west', '9245228');
SELECT al.id, ase.vt, ase.name, ase.ipn, al.email FROM api_log_2 al INNER JOIN api_security_2 ase ON al.name = ase.name WHERE ase.name = 'john test';
编号 | vt | 姓名 | ipn | 电子邮件 --: | :-- | :-------- | ------: | :-------- 101 | x12 | 约翰测试 | 1245774 | j@gm.io
db<>在这里摆弄
推荐阅读
- error-handling - 方案:为什么我会收到此错误:断言违规:错误类型的参数 [car (car #{Unspecific})
- c# - 异步更新多行立即更新1/4的行然后等待
- python - 在 Django 中,我的表单每次刷新时都会重新提交,我知道我可以通过重定向它来解决这个问题,但我也想将数据传递给我的模板
- python - 树视图中的行选择
- java - 将 JFrame 大小动态更改为 JTable 内容
- php - 多个mysqli对象互相覆盖
- python - 如何对齐两个 dask 数据帧的分区
- python - 将元组列表作为雪花中 cte 内的值传递
- python - Asyncio 如何修复 sys:1: RuntimeWarning: coroutine 'xxx' is never waiting
- reactjs - 为什么在使用状态钩子(useState)时react会重新渲染两次?