【发布时间】:2014-07-23 13:44:03
【问题描述】:
我有 2 张桌子。
表 A:trades:其中包含以下列:tradeID、tradeName、tradeShow 和 tradeGuy。
表 B:offer:其中包含以下列:tradeID、offerName、offerGuy。
我正在尝试从表 A(交易)中选择所有列,其中“tradeShow”的值 = 'Yes',以及“tradeGuy”的值 != 用户的用户名。这很容易,但我也不想选择任何有用户创建的报价的记录。换句话说,在表 B(报价)中,offerGuy != Username WHERE trade ID from Table B = tradeID from Table A.
但是,如何合并这两个条件?我试过这个:
$sql = "SELECT *
FROM trades t1
JOIN offers t2
ON (t1.tradeID = t2.tradeID)
WHERE t1.tradeShow='Yes' AND t1.tradeGuy!='$username' AND t2.offeringGuy!='$username'";
但问题在于它只从有报价的交易中选择记录,因为第四行:ON (t1.tradeID = t2.tradeID),因为它只选择在(报价)中有提及其交易 ID 的记录的交易。
我还尝试了一个尴尬的尝试,通过向每个表添加一个默认值为“XXX”的“链接器”列,用一个无意义的链接链接这两个表,然后这样做:
$sql = "SELECT *
FROM trades t1
JOIN offers t2
ON (t1.linkerA = t2.linkerB)
WHERE t1.tradeShow='Yes' AND t1.tradeGuy!='$username' AND (t2.offeringGuy!='$username' WHERE t1.tradeID=t2.tradeID)";
但问题在于使用 2 Where 子句... 那么,如何合并这两个条件?
【问题讨论】:
标签: php mysql sql join where-in