Проблем с SQL заявка

hellkiller

Registered
Имам 2 таблици с почти сходни полета. Искам да изкарам всички записи от двете таблици с една заявка, като за всеки запис да се знае от коя таблица е. Таблиците нямат нищо общо, т.е. без общи полета и външни ключове. В момента стигнах до тук:

Код:
SELECT
coms.com_id,
coms.title,
coms.com,
coms.date

FROM coms

UNION

SELECT
test.test_id,
test.title,
test.desc,
test.date

FROM test

Но проблемът е, че не се разбира кое от коя таблица идва, т.е. трябва ми да знам кой запис е от първата и кой запис от втората таблица. В момента в резултата полетата са с имената от 1-вата таблица.

Та някой може ли да помогне с този проблем? Надявам се да съм обяснил както трябва. Може би това не е най-правилният начин. Ако имате други предложения давайте.
 
Тва става и с една заявка щом имаш сходни полета
Код:
mysql_query(' SELECT * FROM coms , test WHERE coms . date = test . date ')
Нещо такова
Що се отнася до това как да и разграничиш кое поле от коя таблица е, Алиасите в php са много полезни за тази цел
Код:
$sql = mysql_query(' SELECT name as date_name , FROM ..............')
$row = mysql_fetch_assoc($sql)
echo $row[' date_name ']
Нещо такова.
 
Meniak каза:
Тва става и с една заявка щом имаш сходни полета
Код:
mysql_query(' SELECT * FROM coms , test WHERE coms . date = test . date ')
Нещо такова

Не става. Така не връща никакъв резултат. Нямам свързани полета както съм казал и по-горе. За алайсите знам, просто при union-а полетата се появяват както зададеш в първата заявка, независимо какви алайси им задаваш на останалите.
 
SELECT
'coms'
coms.com_id,
coms.title,
coms.com,
coms.date

FROM coms

UNION

SELECT
'test'
test.test_id,
test.title,
test.desc,
test.date

FROM test
?
или пък конкатвай полетата, с името на таблицата :idea:
Не мога да разбера каква ти е идеята :oops:
 
@Replace

Идеята ми е да получа всички записи от двете таблици. Но ми трябва да знам кой запис откъде идва, за да мога да сложа връзка към съответния запис.

Примерно резултата ми е

ID | Title | Desc |Data
-------------------------
1 | Hello | World | 21-01-2011
2 |Web | Site | 22-01-2011
1 | test | test | 15-01-2010

Това примерно е резултата от заявката която съм дал. 1-рия ред е от едната таблица, другите 2 от другата. Как да знам аз кой запис е от 1-вата таблица, че връзката ми там да е 'coms/id' примерно?
 
muzichkaeu каза:
Мисля, че решението е INNER JOIN

Аз мисля, че не е това. Ето резултат:

com_id | title | com | date | test_id | title | desc | date
---------------------------------------------------------------
1 |Hello | Wold | 22-01-2011| 1 | Web | Site| 22-01-2011
2 | Test | Test | 12-01-2011| 1 | Web | Site | 22-01-2011
1 |Hello | Wold | 22-01-2011| 1 | Zdr | asfasf| 22-01-2011
2 | Test | Test | 12-01-2011| 1 | Zdr | asfasf | 22-01-2011
 
Пробвай така:
Код:
SELECT
coms.com_id,
coms.title AS comment_title,
coms.com,
coms.date

FROM coms

UNION

SELECT
test.test_id,
test.title AS test_title,
test.desc,
test.date

FROM test
 
@c3c0

То няма разлика с резултата от заявката ми в първия пост, само дето името е comment_title вместо title. Това не ми помага изобщо.
 
Малко съм нов тука, но ще се опитам да ти помогна.
Код:
SELECT coms.com_id AS tbl11,
               coms.title AS tbl12,
               coms.com AS tbl13,
               coms.date AS tbl14
               test.test_id AS tbl21,
               test.title AS tbl22,
               test.desc AS tbl23,
               test.date AS tbl 24
FROM coms, test;

Така ще знаеш кое от коя таблица е
 

Back
Горе