2014-10-28 45 views
0
$Sql = "SELECT * FROM Table1 INNER JOIN Table2 ON Table1.Schedule_ID = Table2.SheduleId WHERE Table1.ID = '$id' AND Table2.Scheduled = '1'"; 

Table1该行如果Table1.Schedule_ID具有相同的值作为Table2.SheduleId记录才被选中。对于Table1中的TWO值,它从Table2中选择相同的行TWICE。我想避免这种情况,并使Table2SELECT中的每一行只能使用一次。我试过SELECT DISTINCT * FROM Table1但是无济于事。来自内心的选择记录连接表只有一次

请提供建议。

+0

如果存在2条记录,应该从table2中选择哪一行?您需要在查询中告诉数据库 – 2014-10-28 18:09:56

+0

因此,您在'Table2'中有两行,其'SheduleId'具有相同的值,并且两行不包含相同的数据(否则“DISTINCT *”将具有可能为你照顾它)。那么哪一行是正确的,哪一个不是?这不是一个问题,在这里任何人都可以修复 - 你将不得不进入你的数据库,找出哪一行是正确的,并摆脱另一个。祝你好运。 – 2014-10-28 18:15:22

+0

谢谢。可以选择两行,但我希望查询中的每一行只能使用一次。 (不用于Table1中的两行)。如果我有道理 – user2993497 2014-10-28 18:19:53

回答

0

如果我深知,请试试这个修改:

$Sql = "SELECT DISTINCT Table2.* FROM Table1 INNER JOIN Table2 ON Table1.Schedule_ID = Table2.SheduleId WHERE Table1.ID = '$id' AND Table2.Scheduled = '1'"; 

我希望它会以任何方式帮助。