访问基于当前表值的其他值中的选择值

时间:2018-09-16 03:04:28

标签: sql ms-access

我在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
  • DogNameType)1,2,3,4

int

  • ClassResults
  • IDClassEntered)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; 

我希望这是有道理的。 斯蒂芬

1 个答案:

答案 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)

如果要从两个不同的表中选择数据,则必须使用联接。