0

我使用了 JPA 和 mysql。每个表都有实体类。我有四个表。

表 1:学生表

studentId(PK), studentName 
1              jack
2              robert
3              tom
4              smith   

表 2:roll_table

rollId(PK), studentId(FK) 
10001          1
10002          2
10003          3
10004          4

表3:地址表

addressId(PK)  City          studentId(FK) 
1               Washngton       1
2               NewYork1        2
3               Newyork2        3
4               Wasington2      4

表4:contact_table

------------------------------------------------
contactId(pk) phoneNumber email studentId(FK) 
------------------------------------------------

----------------------------------------------

基表是“student_table”。'studentId' 是该表的主键。

剩下的 3 个表都使用了这个 studentId 作为外键。共有 3 个表包含数据。一张表没有任何数据。

如果数据存在其他表,我需要为“studentId = 2 使用的表名和表计数”编写查询。否则是否有任何其他逻辑来获取此信息。

就像现在 studentId = 2 使用了两个表。所以结果是*(roll_table,address_table)*
假设联系人表有studentId=2的数据,那么结果是*(roll_table,address_table,contact_table)*

帮我。提前致谢

4

2 回答 2

0

尝试左连接,它可以帮助您显示左表(学生姓名)中的所有记录,即使右表(roll_table,address_table,contact_table)上没有匹配项

    SELECT student_table.studentId,student_table.studentName
 FROM student_table
 LEFT JOIN roll_table ON student_table.studentId = roll_table.studentId
 LEFT JOIN address_table ON student_table.studentId = address_table.studentId
 LEFT JOIN contact_table ON student_table.studentId = contact_table.studentId
于 2012-06-28T02:31:28.530 回答
0

试试这个查询

SELECT * FROM information_schema.KEY_COLUMN_USAGE 
         WHERE REFERENCED_TABLE_NAME = 'Your base table name'
         AND TABLE_SCHEMA='DataBaseName' 
         AND REFERENCED_COLUMN_NAME = 'coloumnName'

例子

 SELECT * FROM information_schema.KEY_COLUMN_USAGE 
         WHERE REFERENCED_TABLE_NAME = 'student_table'
         AND TABLE_SCHEMA='student_dataBase' 
         AND REFERENCED_COLUMN_NAME = 'studentId'
于 2012-06-28T06:53:34.483 回答