php - MYSQL - 从同一查询中的查找表和主表中的字段获取值

标签 php mysql sql pdo lookup

我有 2 个表,我将在下面描述:

1) 主表按 U_ID 自动递增,并有一个名为 RU_ID 的列,该列引用查找表的 ID。

2) Lookup 表由 RU_ID 自动递增,并且有一个名为 ROLE 的列,它有一个字符串值。

现在我需要一个 SELECT 语句来显示主表的所有值 (SELECT * FROM...) 和查找表的 ROLE 值.

到目前为止我有这个: 请注意,= 2 仅对于此示例是静态的,这将是一个包含 RU_ID 编号的变量。此示例还将在 PHP - PDO 中使用,但 SQL 查询实际上是通用的。

    SELECT * 
    FROM tbl_users as u 
    WHERE u.RU_ID = 2
    AND STATUS = 1 
    AND u.RU_ID IN 
    (SELECT ROLE 
     FROM tbl_role_users, tbl_users
     WHERE RU_ID = 2)";

感谢您与我一起研究这个问题。

最佳答案

你试过加入吗?

SELECT t.*, t1.role
FROM tbl_users t
JOIN tbl_role_users t1 ON t.RU_ID = t1.RU_ID -- # --or t1.ID whichever is referenced
WHERE t1.RU_ID = 2
  AND t.status = 1;

如果您想在不过滤多余行的情况下加入表格,则只需在 JOIN 之前添加 LEFT

注意事项:

我建议您远离连接表的 ANSI 之前的方式,并实际使用 JOIN 语法,因为它在复杂的查询中更容易阅读,或者您可以使用 JOIN 语法获得更多功能......这样您就不需要IN() 语句

关于php - MYSQL - 从同一查询中的查找表和主表中的字段获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26224025/

相关文章:

php - MySQL Group By using MAX 错误结果

php - 从数据库中搜索关键字

sql - 如何从 Oracle 数据库中的表中检索日期

python - 从文件读取值,然后在 sql UPDATE 命令中传递值(python 脚本)

mysql - 带有内部查询的mysql中的求和函数

mysql - 如何在 MySQL 中临时禁用外键约束?

php - 将时间戳 DATE 重新转换回原始格式(编辑时)PHP MySQL

php - 迁移两段代码,报错mysql_fetch_array() expects parameter 1 to be resource

php - HTTP/1.1 400 file_get_contents 中的错误请求

mysql - 更新存储过程中的不同列