我确信这已被提出并已经回答,但不知道问题到底应该是什么。
我有两张桌子
ID | name
=========
1 | foo
2 | bar
3 | lou
4 | sue
和元表:
p_ID | key | value
===================
1 | poo | 1
2 | zoo | 'whatever'
3 | clu | 423
4 | poo | 1
我希望从第一个表中获取未分配poo
值的所有条目:
ID | name
=========
2 | bar
3 | lou
我的方法是
SELECT *
FROM table AS p
LEFT JOIN meta AS m
ON m.p_id = p.ID
WHERE m.key = 'poo'
AND m.value IS NULL
但这会返回一个空结果
答案 0 :(得分:2)
您必须将If InStr(1, .Column(j, i), UserForm1.TextBox2.Text, vbTextCompare) Then
表达式移动到ON子句中。即使在LEFT JOIN中,WHERE子句中的所有内容都必须存在。
m.key = 'poo'
答案 1 :(得分:1)
我认为你应该想要这个;)
<script type="text/javascript">
var change = function () {
callbackObj.changeText();
}
</script>
<button id="test-btn" onclick="change()">click me to change text of label1</button>
在SELECT *
FROM table AS p
LEFT JOIN meta AS m
ON m.p_id = p.ID
AND m.key = 'poo'
WHERE m.value IS NULL
子句中使用m.key = 'poo'
时,这将计算为WHERE
,因此您只能获得INNER JOIN
的记录,而不是表中的所有行。
答案 2 :(得分:0)
您可以改为使用INNER JOIN
。
SELECT *
FROM `table` T
INNER JOIN meta M ON M.p_id = T.ID
WHERE M.key <> 'poo'