目前我有一个大型数据库,其中包含 5 个以上的表和大量数据。
对于每一行数据,我都有一个用户 ID 作为字段之一。我有这种方式,以便可以识别哪些数据属于哪个用户标识。
现在如何显示具有特定用户 ID 的所有表中的所有数据?
我尝试了一些我在网上找到的示例,这些示例使用 information_schema.tables 显示了所有数据,但是我如何仅从特定的用户 ID 显示?
您必须在 mysql 语句中使用 where 子句
其中用户 ID = 这个
把它放在你的陈述的末尾
恐怕没有简单的方法可以做到这一点,您可以:
对每种类型的表(文章、评论、帖子...)运行一个查询:
display_articles_from_select( 'SELECT FROM articles WHERE user_id ... ');
display_comments_from_select( 'SELECT FROM comments WHERE user_id ... ');
UNION
仅当每个表中的列彼此“兼容”时,此选项才可用,例如每个表都有title
和text
字段。
(SELECT title, text FROM articles WHERE used_id = ...)
UNION
(SELECT header AS title, text FROM comments WHERE used_id = ...)
...
JOIN
如果您有允许这样做的数据库架构,您可以简单地连接表,但没有详细的数据库方案信息,我无法提供示例,也无法确认在您的情况下这是可能的。
从不同表中选择所有数据的基本语法:
表 1、表 2、表 3
SELECT t1.*, t2.*, t3.*
FROM table1 as t1, table2 as t2, table3 as t3
WHERE
t1.userid = '1' and t2.userid = '1' t3.userid = '1'
您可以查看此网站以获取更多信息
这将通过 JOIN Queries 来实现。如果您有任何疑问,请查看此链接。http://phpweby.com/tutorials/mysql/32或 o/w 给我我将更新的表字段。
我希望这会帮助你..
例如,
1). mysql> SELECT * FROM products;
+----+--------------+--------------+
| id | product_name | manufacturer |
+----+--------------+--------------+
| 1 | Shoes | Company1 |
| 2 | Laptop | Company2 |
| 3 | Monitor | Company3 |
| 4 | DVD | Company4 |
+----+--------------+--------------+
4 rows in set (0.00 sec)
2). mysql> SELECT * FROM buyers;
+----+------+------------+----------+
| id | pid | buyer_name | quantity |
+----+------+------------+----------+
| 1 | 1 | Steve | 2 |
| 2 | 2 | John | 1 |
| 3 | 3 | Larry | 1 |
| 4 | 3 | Michael | 5 |
+----+------+------------+----------+
这将是输出。
mysql> SELECT buyers.buyer_name, buyers.quantity, products.product_name FROM buyer
s LEFT JOIN products ON buyers.pid=products.id where buyers.id=1;
+------------+----------+--------------+
| buyer_name | quantity | product_name |
+------------+----------+--------------+
|John | 1 | Laptop |
+------------+----------+--------------+