【发布时间】:2011-12-14 13:30:37
【问题描述】:
当用户从中选择任何值时,我在页面上有一个下拉列表;我正在传递该值并过滤结果。 假设如果用户从下拉列表中选择任何自行车,那么从用户表中只有那些记录应该有 自行车,这些记录也应该出现在用户没有自行车的地方。
username vehicleID
========= =======
john 1
peter 1
maria 2
raso
pritam 4
如果用户选择vehicleID 2,那么raso 也应该与maria 一起出现。 我不想为此使用 UNION。
如果用户没有选择任何东西,所有数据都应该默认出现在页面上
任何其他想法。提前致谢
【问题讨论】:
-
如果你可以说 SELECT * FROM USERS WHERE VEHICLEID=2 OR VEHICLEID IS NULL,我不明白你为什么需要联合。这是 SQL 必须做的最基本的事情。
-
根据表大小和索引,
union可能运行得更快,因为您可以消除OR -
所以您的设计支持只有 0 或 1 辆车的用户?还是有用户表、userVehicle 表和 Vehicle 表?如果有多辆车,那么左连接就变得合理了。
标签: sql sql-server