我读过很多JOIN语法的例子,但没有一个适用于我的问题。在INSTR上加入JOIN的SQL问题()
我有一个表报价和销售表查询。一个报价可能会导致多个查询,或者可能不会导致任何查询。我想创建一个所有引号的列表,并包含任何结果查询的详细信息。我预计会有多个结果行,导致许多查询。我期望有一行有空或空查询字段,对于那些没有引起任何询问的报价。
连接数据位于引号表中,其中有一个名为“活动”的字段,其中包含导致的任何或所有查询的ID。重新查询进来它的更新各添é
所以,我想这一点:
SELECT q.*, e.id, e.price
FROM quotes as q
LEFT JOIN enquiries as e
ON INSTR(q.activity, e.id) >'0'
WHERE q.date > '2013-07-01'
但在我的成绩每行包括查询数据。我似乎无法让它包含从未产生任何结果的引用。我认为LEFT JOIN应该给我所有的报价,而不管询问是什么,并且在有匹配的地方包括查询数据。但是我见过的每个例子都只是加入了a.id = b.id,所以我怀疑我的INSTR()匹配标准可能会让事情变得糟糕。
您的查询看起来像它应该返回引号中的所有行。检查完整的返回结果集,这些可能会在最后。此外,您可以删除“0”周围的单引号。而且,你在用什么数据库? –
如果您要在一列中存储多个外键值,这听起来就像是您,您真的应该考虑一些关于规范化数据模型的内容。多值属性是未来在关系模型中头痛的秘诀。 – jpw
我同意在一列中有多个键是不理想的。我会说目前的头痛,而不是未来的头痛!但这就是我现在所坚持的。戈登,你是什么意思“..所有行退回引号”?我肯定没有得到行e。id不在q.activity字段中。我只获得INSTR条件为true的行。帮帮我!有人帮忙! – AJDncnsn