Retrieving 1 record from 2 tables with where syntax

By Bill Graziano on 5 September 2000 | Tags: SELECT


jan asks "i need to know if there is a reccord in any of the two tables which has the username and password provided by the form . . "

The full text of the question is "i have 2 tables

+---table1-----+
|id
|password
|username
+--------------+

+---table2-----+
|id
|password
|username
+--------------+
now i have a login page with 2 fields: password and username..
now i need to know if there is a reccord in any of the two tables which has the username and password provided by the form.
Further on i need to get the table from which it came and the id
the id is being stored inside an other database so the id's from the two tables are autonumberd like they would if it was one big table..

i cannot merge the two tables into one because of the differences in information being stored in them..

thanks in advance..
jan"


We discussed using a UNION in a query in an earlier article. We use that with a small variation here. First we'll create a view that will get us the union of the two tables.

CREATE VIEW vUsers AS
SELECT TableName = 'Table1',
id, password, username
FROM Table1
UNION
SELECT TableName = 'Table2',
id, password, username
FROM Table1


Notice that we used the field "TableName" to tell us which table each record is coming from. After that our select statement is pretty darn easy:

SELECT *
FROM vUsers
WHERE Username = 'user'
AND password = 'password'


That should tell you whether you have a matching user and which table it came from. You can also do this in one query by putting the where clause in both SELECTs in the UNION query. Either way.
-graz


Related Articles

Joining to the Next Sequential Row (2 April 2008)

Writing Outer Joins in T-SQL (11 February 2008)

How to Use GROUP BY with Distinct Aggregates and Derived tables (31 July 2007)

How to Use GROUP BY in SQL Server (30 July 2007)

SQL Server 2005: Using OVER() with Aggregate Functions (21 May 2007)

Server Side Paging using SQL Server 2005 (4 January 2007)

Using XQuery, New Large DataTypes, and More (9 May 2006)

Counting Parents and Children with Count Distinct (10 January 2006)

Other Recent Forum Posts

SQL Server detected a logical consistency-based I/O error: torn page (expected signature: 0xaaaaaaaa; actual signature: 0xfffffffe). It occurred during a read of page (1:908) in database ID 99 at offset (63m)

Case stmt in SSIS (19h)

Upgrading from MSSQL 2016 to 2017 (1d)

Why does CASE WHEN NULL IN (SELECT A FROM B) THEN 'Y' ELSE '' AS [NULL] does not work? (1d)

Tensorflow package installation on SQL 2019 ML Services (1d)

How can I reference the table (T1 JOIN T2 ON A=B JOIN T3 ON C=D)? (1d)

Is there an easy way to populate a column with an INDEX/MATCH statement? (2d)

Is joining table completely deceiving? (2d)

- Advertisement -