Veritabanımda iki tablo var, bunlardan biri order
ve diğeri user
.Neden MySQL'e Inner Join unrelated information?
Siparişle ilgili bilgileri, siparişi veren ilişkili kullanıcıyla birlikte çekmek istiyorum, bunu yapmak için kullanıcının adındaki iki tabloyu birleştirmek için INNER JOIN
kullanıyorum. Bununla birlikte, sorun doğru sipariş bilgisini getirmesidir, fakat kullanıcı ilgili kullanıcı değildir ve bunun yerine veritabanındaki ilk kullanıcı kaydıdır.
Neden bu dünyada oluyor? Bu neden çalışmadığını anlamıyorum
SELECT orders.oid,
orders.ordernumber,
orders.date_requested,
orders.date_approved,
orders.status,
orders.region,
orders.users_name,
orders.comments,
orders.customShippingAddress,
orders.approval_comments,
orders.approved_by_id,
users.firstname,
users.lastname,
users.address,
users.address2,
users.city,
users.`state`,
users.zip,
users.phonenum,
users.cellnum,
users.officenum,
users.region,
users.shipping_address
FROM orders
INNER JOIN users
ON orders.users_name=users.firstname + ' ' + users.lastname
WHERE orders.oid='$id'";
:
İşte benim sorgusu olur. Herkes bana biraz yön verebilir mi lütfen?
Benzersiz olmama ihtimali olan bir şeye katılıyorsunuz, iç birleştirme gibi bir şeylere sahip olmalısınız ... order.user_id = user.id –
Kullanıcı birden fazla siparişte bulunuyorsa teklik için aynı sorunu olmaz mıydı? – SherwoodPro
Hayır, bir kullanıcının birden fazla siparişi olabilir. Sipariş başına bir kullanıcı olsa da. Ama kastettiğim, aynı isimde 2 kullanıcınız varsa, bu sipariş için her ikisinin de olası eşleşmeleri olacağı gerçeğiydi. Sadece bulunan ilk eşleşmeyi seçecektir. –