由于某种原因,我很难得到这个答案。
我有两个表,table1和table2,如下所示:
表1:
ID Location Warehouse
1 London Narnia
2 Cyprus Metro
3 Norway Neck
4 Paris Triumph
表2:
ID Area Code
1 London Narnia
2 Cyprus Metro
3 Norway Triumph
4 Paris Neck
我需要先从table1中选择table1.Location
所在的table2.Area
和 table1.Warehouse
位于table2.Code
GIVEN THAT < / strong> table1.Location
位于table2.Area
。即我想要:
ID Location Warehouse
1 London Narnia
2 Cyprus Metro
我必须:
select
1.location
, 1.warehouse
from table1 1
where 1.location in (select area from table2)
and 1.warehouse in (select code from table2)
但这不起作用,因为我需要根据第一个where子句保持true来执行第二个where子句。
我也尝试使用连接进行类似的查询,但无济于事。
有一种简单的方法吗?
答案 0 :(得分:3)
使用exists
:
select t.location, t.warehouse
from table1 t
where exists (select 1
from table2 t2
where t.location = t2.area and t.warehouse = t2.code
);
我应该指出,有些数据库支持in
的行构造函数。这允许你这样做:
select t.location, t.warehouse
from table1 t
where(t1.location, t1.warehouse) in (select t2.area, t2.code from table2 t2);
答案 1 :(得分:1)
也许我错过了一些东西,但是对这两个条件的简单连接会在你的例子中给出结果:
$('#getresult').click(function() {
var parameters = {data1:'value1',data2:'value2'};
$.post("getresult.php",parameters,function(msg){
console.log(msg);
},'json');
});
结果:
select t1.*
from table1 t1
join table2 t2 on t1.Location = t2.Area
and t1.Warehouse = t2.Code;
答案 2 :(得分:0)
您需要使用JOIN
。
我会在一段时间内设计查询:)
编辑:
SELECT
1.location
, 1.warehouse
FROM table1 1
JOIN table2 2 ON 1.location = 2.area AND 1.warehouse = 2.code