我在Access中有2个表,我正在尝试构建一个LookUp查询。 (我是SQL新手)
@Entity
public class CarOwner implements Serializable {
@EmbeddedId
private CarOwneId id;
@ManyToOne
@JoinColumn(name = "car_id", referencedColumnName = "car_id", insertable = false, updatable = false)
private Car car;
@ManyToOne
@JoinColumn(name = "owner_id", referencedColumnName = "owner_id", insertable = false, updatable = false)
private Owner owner;
public CarOwner(Car c, Owner o) {
// create primary key
this.id = new CarOwneId(c.getId(), o.getOwnerid());
// initialize attributes
this.car = c;
this.owner = o;
}
public CarOwneId getId() {
return id;
}
public void setId(CarOwneId id) {
this.id = id;
}
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
public Owner getOwner() {
return owner;
}
public void setOwner(Owner owner) {
this.owner = owner;
}
@Embeddable
public static class CarOwneId implements Serializable {
@Column(name = "car_id")
protected Long carId;
@Column(name = "owner_id")
protected Long ownerId;
public CarOwneId() {
}
public CarOwneId(Long carId, Long ownerId) {
this.carId = carId;
this.ownerId = ownerId;
}
public Long getCarId() {
return carId;
}
public void setCarId(Long carId) {
this.carId = carId;
}
public Long getOwnerId() {
return ownerId;
}
public void setOwnerId(Long ownerId) {
this.ownerId = ownerId;
}
}
}
Dogs
ID
DogName
(Type
)1,2,3,4 int
ClassResults
ID
(ClassEntered
)1-24 int
因此,在查找中,我试图从DogName
表中查找所有狗,如果DOGS
小于12,则选择所有ClassEntered
为1或2的狗。
TYPE
数据示例:
Dogs
ID DogName Type
0 AAA 1
1 BBB 3
2 CCC 1
3 DDD 2
4 EEE 4
数据示例:
ClassResults
因此,ID ClassEntered DogName
0 6 ?????
的下拉列表应显示:
DogName
0, AAA, 1
2, CCC, 1
3, DDD, 2
SELECT DISTINCT Dogs.DogName FROM Dogs, ClassResults
WHERE (IIf([ClassResults].[ClassEntered] < 10,[Dogs.Type]<3,[Dogs.Type]>2)) ORDER BY Dogs.DogName;
我希望这是有道理的。 斯蒂芬
答案 0 :(得分:0)
最好使用联接:
select * from dogs d
left join ClassResults c on d.dogname=c.dogname
where c. ClassEntered<12 and d.type in (1,2)
如果要从两个不同的表中选择数据,则必须使用联接。