Dvielis Posted March 29, 2006 Report Share Posted March 29, 2006 (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 March 29, 2006 by Dvielis Link to comment Share on other sites More sharing options...
bubu Posted March 29, 2006 Report Share Posted March 29, 2006 Ķ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 ..."; Link to comment Share on other sites More sharing options...
Dvielis Posted March 29, 2006 Author Report Share Posted March 29, 2006 o, liels paldies bubu, viss strādā ar to union. pa tām tabulām, man vienkārši ir nepieciešams šāds variants. =) Link to comment Share on other sites More sharing options...
Recommended Posts