我在SQLite数据库中有3个表没有任何关系。
我必须返回关于我有条件的3个表中的一个表的所有字段:
(table1.field1="something" and table1.field2="something") OR (table2.filed1="something" and table2.field2="something") ...
所以我想知道哪个表中的字段带有“something”,并返回该表中包含该信息的其他字段。
如果问题根本不清楚,我会尝试用这个问题做一个图片。
修改
我试过这样的事情:
SELECT idpontosturisticos,idrestauracao,idalojamento from Alojamento,pontosturisticos ,restauracao WHERE (alojamento.latitude=41.158764 AND alojamento.longitude=-7.784906 AND alojamento.nome='Restaurante1') OR (pontosturisticos.latitude=41.158764 AND pontosturisticos.longitude=-7.784906 AND pontosturisticos.nome='Restaurante1') OR (restauracao.latitude=41.158764 AND restauracao.longitude=-7.784906 AND restauracao.nome='Restaurante1')
答案 0 :(得分:1)
我想你只想要一个UNION。
像这样:
SELECT idpontasturisticos, otherfielda1, otherfielda2, otherfieda3 from pontosturisticos WHERE (latitude=41.158764 AND longitude=-7.784906 AND nome='Restaurante1')
UNION
SELECT idrestauracao, otherfieldb1, otherfieldb2, otherfiedb3 from restauracao WHERE (latitude=41.158764 AND longitude=-7.784906 AND nome='Restaurante1')
UNION
SELECT idalojamento, otherfieldc1, otherfieldc2, otherfiedc3 from alojamento WHERE (latitude=41.158764 AND longitude=-7.784906 AND nome='Restaurante1')
您只需要确保从三个子查询中检索相同数量的字段。这些字段不必是相同的名称,但它们都将归入同一列。列名称将是第一个子查询中的名称(在本例中为idpontasturistocs,otherfieda1,otherfielda2,otherfielda3)