当我删除主键时,我的查询不再起作用

时间:2014-07-15 10:59:28

标签: php mysql

我用主键创建我的数据库我将这个主键传递给另一个表假设,现在我正在删除主键我的查询没有获取值,因为我使用join来检索数据是什么解决方案因为php mysql中的引用表中缺少此主要ID。

社区表:

 c.d_id    communityname
   1          BC
   2          SC
   3          ST

学生表

  ID           Community
   1             1
   2             3
   3             1

SQL

SELECT c.communityname FROM student  s left join community c on c.d_id=s.community WHERE s.stud_rollno = '".$rollno."' GROUP BY stud_rollno

3 个答案:

答案 0 :(得分:0)

您可以使用简单的子查询,而不是 WHERE 子句da!

SELECT `id`, (
  SELECT `communityname` FROM `community` WHERE `Community`=`d_id`
) FROM `student`;

否则,您需要级联主键和外键。

答案 1 :(得分:0)

如果我的问题正确,你在另一个表中使用主键作为属性,它是该新表的外键。

通过指定此项,您可以使用级联行为来删除"外来行"在第一个表中删除主键时。

CONSTRAINT fk_column
   FOREIGN KEY (column1, column2, ... column_n)
   REFERENCES parent_table (column1, column2, ... column_n)
   ON DELETE CASCADE
);

答案 2 :(得分:0)

解决此问题的一种方法是使用社区表中存在的另一个社区ID更新学生表,使用ON DELETE CASCADE删除学生。