Jump to content
php.lv forumi

Recommended Posts

Posted (edited)

Man ir 4 tabulas, piemēram:

tabula_1

tabula_2

tabula_3

tabula_4

 

Kā likt mysql saprast, kad ievadu meklētāja laukā kādu vārdu, viņš no visām 4 tabulām izvelk attiecīgo tēmas nosaukumu. Tēmas lauks ir nosaukts par "tema". Katrā tabulā ir vienāds lauks - tema, bet dati tajā atšķirīgi.

Mēģināju šitā uztaisīt:

$sql = "SELECT * FROM tabula_1, tabula_2, tabula_3, tabula_4 where tema like '%$meklet%'";

 

Bet viņš man izmet šādu kļūdu:

Column 'tema' in where clause is ambiguous

Ķipa lauks 'tema' ir divdomīgs. Kas varētu būt pa kļūdu?

 

P.S.

Aizmirsu piebilst, ka ja pirms where uzraksta tikai 1 tabulas nosaukumu, tad viss iet, bet ja visas tabulas nosaukumus uzraksta, tad neiet.

Edited by Dvielis
Posted
Ķipa lauks 'tema' ir divdomīgs. Kas varētu būt pa kļūdu?

Viss taču pareizi - lauks tema ir divdomīgs, jo atrodās veselās 4 tabulās. Kā lai MySQL zin, kuru no tiem tu domāji?

 

Vispār jautājums - kāpēc tev ir tādas 4 tabulas? Skaitļa esamība tabulu nosaukumos kā sufikss bieži vien liecina par nepareizu datubāzes struktūru.

 

Bet ja nu ļoti vajag, tad ar UNION jārīkojas:

$sql = "SELECT lauks FROM tabula_1 WHERE tema LIKE '%$meklet%' UNION SELECT lauks FROM tabula_2 WHERE tema LIKE '%$meklet%' UNION ...";

×
×
  • Create New...